HTTP消息又称为HTTP头(HTTP header),由四部分组成,分别是请求头、响应头、普通头、实体头。
1. 请求头
请求头只出现在http请求中,请求报头允许客户端向服务器端传递请求的附加信息和客户端自身的信息。常用的请求头如下:
- Host
Host请求报头域主要用于被请求资源的Internet主机和端口号,例如:HOST: www.xxser.com:801
。
- User-Agent
User-Agent请求报头域允许客户端将它的操作系统、浏览器和其他属性告诉服务器。登录一些网站时,很多时候都可以见到显示我们的浏览器、系统信息,这些都是此头的作用,如:User-Agent: My privacy
。
- Referer
Referer包含一个URL,代表当前访问URL的上一个URL,也就是说,用户是从什么地方来到本页面。如:Referer: www.xxser.com/login.php
,代表用户从login.php来到当前页面。
- Cookie
Cookie是非常重要的请求头,它是一段文本,常用来表示请求者身份等。
- Range
Range可以请求实体的部分内容,多线程下载一定会用到此请求头。例如:
表示头500字节:bytes = 0 ~ 499
表示头第二个500字节:bytes = 500 ~ 499
表示最后500字节:bytes = -500
表示500字节以后的范围:bytes = 500-
- x-forward-for
x-forward-for即XXF头,它代表请求端的IP,可以有多个,中间以逗号隔开。
- Accept
Accept请求报头域用于指定客户端接收哪些MIME类型的信息,如Accept: text/html
,表明客户端希望接收HTML文本。
- Accept-Charset
Accept-Charset请求报头域用于指定客户端接收的字符集。例如:Accetp-Charset: iso-8851-1, gb2312
。如果在请求消息中没有设置这个域,默认是任何字符集都可以接收。
2. 响应头
响应头是服务器根据请求向客户端发送的HTTP头。常见的HTTP响应头如下。
- Server
服务器所使用的web服务器名称,如:Server: Apache/1.3.6(Unix)
,攻击者通过查看此头,可以探测Web服务器名称。所以,建议在服务器端进行 修改此头的信息。
- Set-Cookie
向客户端设置Cookie,通过查看此头,可以清楚地看到服务器向客户端发送的Cookie信息。
- Last-Modified
服务器通过这个头告诉浏览器,资源的最后修改时间。
- Location
服务器通过这个头告诉浏览器去访问哪个页面,浏览器接收到这个请求之后,通常会立刻访问Location头所指向的页面。这个头通常配合302状态码使用。
- Refresh
服务器通过Refresh头告诉浏览器定时刷新浏览器。
3. 普通头
在普通报头中,有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息。
例如:Date,表示消息产生的日期和时间。Connection,允许发送指定连接的选项。例如,指定连接是连续的,或者指定“close”选项,通知服务器,在响应完成后,关闭连接。Cache-Control,用于指定缓存指令,缓存指令是单向的,且是独立的。
注意:普通报头作为了解即可。
4. 实体头
请求和响应消息都可以传送一个实体头。实体头定义了关于实体正文和请求所标识的资源的元信息。元信息也就是实体内容的属性,包括实体信息类型、长度、压缩方法、最后一次修改时间等。常见的实体头如下:
- Content-Type
Content-Type实体头用于向接收方指示实体的介质类型。
- Content-Encoding
Content-Encoding头被用作媒体类型的修饰符,它的值指示了已经被应用到实体正文的附加内容的编码,因而要获得Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制。
- Content-Length
Content-Length实体报头用于指明实体正文的长度,以字节方式存储的十进制数字来表示。
- Last-Modified
Last-Modified实体报头用于只是资源的最后修改日期和时间。
网友评论