Web-Attak系列教程第二季0x12讲——HTTP的请求与响应格式

分享知识,分享快乐;收获友谊,收获财富。

大家好,我是数字雨QQ:798033502

 

主站:http://www.91duofanli.com/

店铺:http://itbook.taobao.com/

 

今天给大家带来的教程是《Web-Attak系列教程第二季0x12讲——HTTP的请求与响应格式

 

本教程仅作教学演示和技术讨论,不得进行违法犯罪活动。

 

HTTP的消息结构如图:

一、请求格式

 

1 通用头(general-header)
Cache-Control:客户端希望服务端如何缓存自己的请求数据,如"Cache-Control: no-cache""Cache-Control: max-age=0"
Connection:客户端是否希望与服务端之间保持长连接,如"Connection: close", "Connection: keep-alive"
Date:只有当请求方法为POSTPUT方法时客户端才可能会有些字段;
Pragma:包含了客户端一些特殊请求信息,如 "Pragma: no-cache" 客户端希望代理或应用服务器不应缓存与该请求相关的结果数据;
Via:一般用在代理网关向应用服务器发送的请求头中,表明该来自客户端的请求经过了网关代理,
     格式为:"Via: 请求协议版本  网关标识   [其它信息] "
     如 :" Via: 1.1  webcache_250_199.hexun.com:80 (squid)"

 

2 请求头(request-header)
Accept: 表明客户同端可接受的请求回应的媒体类型范围列表。星号*用于按范围将类型分组,用*/*指示可接受全部类型;用type/*指示可接受 type类型的所有子类型,如“ Accept: image/gif, image/jpeg, */*
Accept-Charset:客户端所能识别的字符集编码格式,格式:Accept-Charset: 字符集1[:权重],字符集2[:权重],如:“ Accept-Charset: iso-8859-5, unicode-1-1;q=0.8
Accept-Language:客户端所能识别的语言,格式:Accept-Language: 语言1[:权重],语言2[:权重],如:” Accept-Language: zh, en;q=0.7
Host:客户请求的主机域名或主机IP,格式:Host: 域名或IP[:端口号],如:Host: www.hexun.com:80,请求行中若有HTTP/1.1则必须有该请求头;
User-Agent:表明用户所使用的浏览器标识,主要用于统计的目的;
Referer:指明该请求是从哪个关联连接而来;

Accept-Encoding:客户端所能识别的编码压缩格式,如:Accept-Encoding: gzip, deflate
If- Modified-Since:该字段与客户端缓存相关,客户端所访问的URL自该指定日期以来在服务端是否被修改过,如果修改过则服务端返回新的修改后 的信息,如果未修改过则服务器返回304表明此请求所指URL未曾修改过,如:If-Modified-Since: Fri, 2 Sep 2006 19:37:36 GMT
If-None-Match:该字段与客户端缓存相关,客户端发送URL请求的同时发送该字段及标识,如 果服务端的标识与客户端的标识一致,则返回304表明此URL未修改过,如果不一致则服务端返回完整的数据信息,如:If-None-Match: 0f0a893aad8c61:253, 0f0a893aad8c61:252, 0f0a893aad8c61:251
Cookie:为扩展字段,存储于客户端,向同一域名的服务端发送属于该域的cookie,如:Cookie: MailUserName=whouse

 

3 实体头(entity-header): (此类头存在时要求有数据体)
Content-Encoding:客户端所能识别的编码压缩格式,如:Content-Encoding: gzip, deflate
Content-Length:客户端以POST方法上传数据时数据体部分的内容长度,如:“ Content-Length: 24
Content- Type:客户端发送的数据体的内容类型,如:Content-Type: application/x-www-form-urlencoded为以普通的POST方法发送的数据;Content-Type: multipart/form-data; boundary=---------------------------5169208281820,则表明数据体由多部分组成,分隔符为 -----------------------------5169208281820

 

二、响应格式

 

A, 通用头(general-header)
Cache- Control:服务端要求中间代理及客户端如何缓存自己响应的数据,如Cache-Control: no-cache,如:Cache-Control: private” 不希望被缓存,Cache-Control: public” 可以被缓存;
Connection:服务端是否希望与客户端之间保持长连接,如Connection: closeConnection: keep-alive
Date:只有当请求方法为POSTPUT方法时客户端才可能会有些字段;
Pragma:包含了服务端一些特殊响应信息,如 Pragma: no-cache” 服务端希望代理或客户端不应缓存结果数据;
Transfer-Encoding:服务端向客户端传输数据所采用的传输模式(仅在HTTP1.1中出现),如:Transfer-Encoding: chunked,注:该字段的优先级要高于Content-Length 字段的优先级;

 

B,响应头(response-header)
Accept-Ranges:表明服务端接收的数据单位,如:Accept-Ranges: bytes
Location:服务端向客户端返回此信息以使客户端进行重定向,如:Location: http://www.hexun.com
Server:服务端返回的用于标识自己的一些信息,如:“ Server: Microsoft-IIS/6.0
ETag:服务端返回的响应数据的标识字段,客户端可根据此字段的值向服务器发送某URL是否更新的信息;

 

C实体头(entity-header): (此类头存在时要求有数据体)
Content-Encoding:服务端所响应数据的编码格式,如:Content-Encoding: gzip
Content-Length:服务端所返回数据的数据体部分的内容长度,如:“ Content-Length: 24
Content-Type:服务端所返回的数据体的内容类型,如:Content-Type: text/html; charset=gb2312” 
Set-Cookie:服务端返回给客户端的cookie数据,如:“ Set-Cookie: ASP.NET_SessionId=icnh2ku2dqlmkciyobgvzl55; path=/

 

三、服务器返回状态码

1xx:表明服务端接收了客户端请求,客户端继续发送请求;
2xx:客户端发送的请求被服务端成功接收并成功进行了处理;
3xx:服务端给客户端返回用于重定向的信息;
4xx:客户端的请求有非法内容;
5xx:服务端未能正常处理客户端的请求而出现意外错误。

 

举例:

100”  服务端希望客户端继续;
200”  服务端成功接收并处理了客户端的请求;
301”  客户端所请求的URL已经移走,需要客户端重定向到其它的URL
304”  客户端所请求的URL未发生变化;
400”  客户端请求错误;
403”  客户端请求被服务端所禁止;
404”  客户端所请求的URL在服务端不存在;
500”  服务端在处理客户端请求时出现异常;
501”  服务端未实现客户端请求的方法或内容;
502”  此为中间代理返回给客户端的出错信息,表明服务端返回给代理时出错;
503”  服务端由于负载过高或其它错误而无法正常响应客户端请求;
504”  此为中间代理返回给客户端的出错信息,表明代理连接服务端出现超时。

 

 

 

菜鸟作品,大牛勿喷!

posted @ 2013-10-17 23:17  MXi4oyu  阅读(246)  评论(0编辑  收藏  举报