HTTP 报文结构
1、HTTP报文结构
1.1、请求报文
即从客户端(浏览器)向Web服务器发送请求报文。报文的所有字段都是ASCII码。
实例:
GET /js/an.js HTTP/1.1 #请求行
Accept: */* #可接受的媒体类型
Accept-Encoding: gzip, deflate #可接受的编码
Accept-L anguage: zh-cn #接受的语言
Connection: Keep-Alive #持久连接
Host: cache.soso.com #Host
Referer: http://help.soso.com/ #引用 页面
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; InfoPath.2) #用户代理
1.2、响应报文
即从Web服务器到客户机(浏览器)的应答。报文的所有字段都是ASCII码。
实例:
HTTP/1.1200 OK #状态行.
Accept-Ranges: bytes #表示服务器端可以接受range请求
Cache-Control: max -age=86400 #缓存控制时间
Content-Encoding: gzip #内容编码格式
Content-L ength: 1088 #内容长度
Content-Type: text/javascript #内容类型
Date: Thu, 18 Jun 2009 15:47:14 GMT #时间
ETag:“1902284250“ #实体标签
Expires: Fri, 19 Jun 2009 15:47:14 GMT #过期时间
L ast-Modified: Fri, 10 Oct 2008 04:13:19 GMT #最后修改日期
Server: WS CDN Server #Server名称
Vary: Accept-Encoding #告知该响应缓存时取决的方式
1.3、请求报文中的一些方法
方法(Method)是所请求对象所进行的操作,也就是一些命令。请求报文中的操作有:
方法(操作) | 含义 |
---|---|
GET | 请求读取一个页面 |
POST | 附加一个命名资源(如Web页面) |
HEAD | 请求读取一个Web页面的首部 |
PUT | 请求存储一个Web页面 |
DELETE | 删除Web页面 |
TRACE | 用于测试,要求服务器送回收到的请求 |
CONNECT | 用于代理服务器 |
OPTION | 查询特定选项 |
1.4、响应报文中的状态码
状态码(Status-code)是响应报文状态行中包含的以三位数字,指明特定的要求是否被满足,如果没有满足,原因是什么。状态码分为一下的五类:
状态码 | 含义 | 例子 |
---|---|---|
1xx | 通知信息 | 100=服务器正在处理客户请求 |
2xx | 成功 | 200=请求成功 |
3xx | 重定向 | 301=页面改变了位置 |
4xx | 客户端错误 | 403=禁止的页面;401=页面未找到 |
5xx | 服务器错误 | 500=服务器内部错误;503=以后再试 |
常见的状态码:
➢200 OK
➢206 Partial Content
➢301 Moved Permanently
➢302 Found
➢304 Not Modified
➢400 Bad Request
➢403 Forbidden
➢404 Not Found
➢502 Bad Gateway
➢503 Service Unavailable
➢504 Gateway Timeout
1.5、首部字段或消息头
头(header) | 类型 | 说明 |
---|---|---|
User- Agent | 请求 | 关于浏览器和它平台的信息,如Moilla5.0 |
Accept | 请求 | 客户能处理的页面的类型,如text/html |
Accept-Charset | 请求 | 客户可以接受的字符集,如Unicode-1-1 |
Accept-Encoding | 请求 | 客户能处理的页面编码方法,如gzip |
Accept-Language | 请求 | 客户能处理的自然语言,如en(英语),zh- cn(简体中文) |
Host | 请求 | 服务器的DNS名称。从URL中提取出来,必需。 |
Authorization | 请求 | 客户的信息凭据列表 |
Cookie | 请求 | 将以前设置的Cookie送回服务器器,可用来作为会话信息 |
Date | 双向 | 消息被发送时的日期和时间 |
Server | 响应 | 关于服务器的信息,如Microsoft IS/6.0 |
Content-Encoding | 响应 | 内容是如何被编码的(如gzip) |
Content-Language | 响应 | 页面所使用的自然语言 |
Content-Length | 响应 | 以字节计算的页面长度 |
Content-Type | 响应 | 页面的MIIME类型 |
Last-Modified | 响应 | 页面最后被修改的时间和日期,在页面缓存机制中意义重大 |
Location | 响应 | 指示客户将请求发送给别处,即重定向到另个URL |
Set-Cookie | 响应 | 服务器希望客户保存一个Cookie |
2、HTTP代理
2.1、什么是HTTP用户代理?
HTTP代理又称Web缓存或代理服务器(Proxy Server),是一种网络实体, 能代表浏览器发出HTTP请求,并将最近的一些请求和响应暂 存在本地磁盘中,当请求的Web页面先前暂存过,则直接将暂存的页面发给客户端(浏览器),无须再次访问Internet。