HTTP使用一种基于消息的模型:客户端送出请求消息,服务器返回响应消息,该协议基本不需要连接。
虽然HTTP使用有状态的TCP协议作为他的传输机制,但每次请求响应交换都自动完成,并且可能使用不同的TCP连接。
所有HTTP消息(请求与相应)中都包含一个或几个单行显示的消息头(header),然后一个强制空白行,最后是消息主体(可选)。
HTTP请求
每个HTTP请求的第一行都由3个以空格间隔的元素组成:
一个说明Http方法的动词。最常用的是get,主要作用是从web服务器获取一个资源。get请求没有消息主体。
所请求的url。该url通常由所请求的资源名称,以及一个可选查询字符串组成。
使用的HTTP版本。当攻击web应用程序时,渗透测试员可能遇到的唯一差异是1.1版本必须使用host请求头。
referer消息头用于表示发生请求的原始url
user-agent消息头提供与浏览器等生成请求的客户端软件有关的信息。
host用于指定被访问的的主机名称
cookie消息头用于提交服务器向客户端发布的其他参数。
HTTP响应
每个HTTP响应的第一行都由3个以空格间隔的元素组成:
使用的HTTP版本。
表示请求结果的数字状态码
一段文本形式的“原因短语”,进一步说明响应状态。这个短语可包含任何值,当前刘游览器不将其用于任何目的。
server消息头中包含一个旗标,指明所使用的web服务器软件。有时还包括其他信息。
set-cookie向浏览器发送另一个cookie,他将在随后向服务器发送的请求中由cookie消息头返回
pragma指示浏览器不要将响应保存在缓存中。
Expires指出响应内容已经过期,因此不应保存在缓存中
content-type 表示这个消息主体包含一个HTML文档
content-length消息主体的字节长度。
键 值
请求 GET /baidu/pic/item/4034970a304e251f5ec83adaa686c9177f3e53d1.jpg HTTP/1.1
Accept image/png, image/svg+xml, image/*;q=0.8, */*;q=0.5
Referer http://www.hao123.com/
Accept-Language zh-CN
User-Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
UA-CPU AMD64
Accept-Encoding gzip, deflate
Host hiphotos.baidu.com
Connection Keep-Alive
Cookie BAIDUID=47CA46CBAE319A62D39501FBF2B9A19A:FG=1; H_PS_PSSID=1986_1446_1945_1788
键 值
响应 HTTP/1.1 200 OK
Server JSP2/1.0.10
Date Sat, 23 Feb 2013 12:43:54 GMT
Content-Type image/jpeg
Connection keep-alive
Content-Length 2236
Cache-Control max-age=31536000
ETag "16336705231294286139"
Expires Tue, 18 Feb 2014 09:46:01 GMT
Last-Modified Mon, 18 Feb 2013 09:44:39 GMT
方向 键 值 截止期限 域 路径 安全 仅 HTTP
已发送 BAIDUID 47CA46CBAE319A62D39501FBF2B9A19A:FG=1
已发送 H_PS_PSSID 1986_1446_1945_1788