HTTP是如何工作的?
HTTP协议定义了web客户端如何从web服务器请求web页面,以及服务器如何把web页面发送给客户端。
客户端连接到web服务器
一个http客户端通常是浏览器,与web服务器的http端口(默认80)建立一个TCP套接字连接。
发送HTTP请求
通过TCP套接字,客户端向web服务器发送一个文本的请求报文,一个报文有请求行、请求头部、空行和请求数据4部分组成。
服务器接收请求并返回http响应
web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、请求空行和响应数据4部分组成。
释放连接TCP连接
若connection模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;
若connection模式为Keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求。
客户端浏览器解析HTML内容
客户端浏览器收到的是一个静态HTML内容,会自己去解析并展示给用户。
Request请求信息
GET/index.phpHTTP/1.1 HOST:www.baidu.com User-Agent:Mozilla/5.0 (Windouws NT 6.1 ; rv:15.0) Geko/20180511 Firefox/15.0 Accpet:text/html,application/xhtml, application/xml; q=0.9,*/*, q=0.8 Accpet-Language:zh-cn,zh:q=0.8, en-us; q=0.5, en;q=0.3 Accpet-Encoding:gzip, deflate Connetion:keep-alive |
GET | 请求获取由Request-URI所标识的资源 |
POST | 在Request-URI所标识的资源后附加新的数据。 |
HEAD | 请求获取由Request-URI所标识的资源的响应消息报头。 |
OPTIONS | 请求查询服务器的性能,或查询与资源相关的选项和需求。 |
PUT | 请求服务器存出一个资源,并用Request-URI作为标识 |
DELETE | 请求服务器删除由Request-URI所标识的资源。 |
TRACE | 请求服务器会送收到的请求信息,主要用于测试或诊断。 |
CONNECT | 要求用隧道协议连接代理。 |
LINK | 建立和资源之间联系。 |
UNLINE | 断开连接关系。 |
HTTP请求方法
User-Agent | 客户端将它的操作系统、浏览器和其它属性高速浏览器 |
HOST | 指定被请求资源的主机地址和端口号 |
Connetion | 当前连接是否保持 |
Accpet-Language | 指定一种自然语言 |
Accpet | 浏览器可接受的MIME类型 |
Referer | 包含一个URL,用户从该URL代表的页面出发访问当前请求的页面 |
Cookie | Cookie是一段文本,它常用来表示请求者的身份 |
Range | 可以请求实体部分的内容,多线程下载器常用此请求 |
X-forward-for | XXF头它代表请求端的IP,可以有多个,中间以逗号隔开 |
常见的HTTP请求头
HTTP/1.1200 OK Date:Sat, 12 May 2018 17:08:05 GMT Server:BWS/1.0 Content-Length:4199 Content-Type:text/html;charset=utf-8 Cache-Contorl:private Expires:Sat, 12 May 2018 17:08:05 GMT Content-Encoding:gzip Set-Cookie:H_PS_PSSID=2022_1438_1944_1788; path=/; domain=.baidu.com Connection:Keep-Alive |
HTTP响应
1XX | 接收的请求正在处理 |
200 | 客户端请求成功 |
302 | 临时跳转,跳转的地址通过location制定 |
400 | 客户端请求语法错误,服务器无法识别 |
401 | 请求未经授权 |
403 | 服务器收到请求,但是拒绝提供服务 |
404 | 请求资源不存在 |
500 | 服务器内部错误 |
常见HTTP状态码
Server | WEB服务器名称 |
Content-Type | 用来指明发送给接受者的实体正文的媒体类型 |
Content-Length | 指明实体正文长度 |
Keep-Alive | 保持连接时间 |
Date | 格林时间 |
location | 表示客户端应当到哪里去提取文档,当客户端接收到请求后会再次发送请求 |
Set-Cookie | 向客户端设置Cookie |
HTTP响应方法对应意义
完
点分享
点收藏
点点赞
点在看
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...