Http协议

HTTP是一个基于request/response模式的、无状态(statelesness)的协议,理论上这意味着每次请求,你的浏览器都要重新连接到服务器。实际中,你可以使用Keep-Alive消息头在你的浏览器和服务器之间保持持续的连接

幂等性(Idempotence)意味着某种操作应用多次,结果也不会改变。GET和PUT类型的HTTP请求是幂等性的,而POST不是。换句话说,不能缓存POST响应。

HTTP request由三部分组成
(1)请求行:Method Request-URI HTTP-Version CRLF
(2)消息报头:普通报头 + 请求报头 + 实体报头
(3)空行
(4)请求正文:实体内容

请求行:Method Request-URI HTTP-Version CRLF //请求方法 要请求的资源 HTTP协议版本 回车
例子:GET /form.html HTTP/1.1 CRLF

Methods:

GET 请求request-URI所标示资源(常用请求,也可提交表单),数据在URI后附加,数据大小受限制
POST 在request-URI所标示资源后附加数据(提交表单),数据在请求正文中
HEAD 请求request-URI所标示资源的响应消息报头(服务器不返回实体内容,用于测试)
PUT 请求存储资源,用request-URI标示
DELETE 请求删除request-URI所标示的资源
TARCE 请求服务器回送请求信息,用于测试或诊断
CONNECT 保留,暂未使用
OPTIONS 请求查询服务器性能、资源相关选项

HTTP request简单例子:

POST /TheStockExchange/Trading/GetStockPrice.asp HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
Content-Length: 11
 
Symbol=MSFT

HTTP request例子:

GET /dy/deco/2011/0427/mblog_zs.jpg HTTP/1.1   GET方式
Accept: */*     浏览器接受类型
Referer: http://www.sina.com.cn/    从哪里跳转到图片的
Accept-Language: zh-cn        支持语言
Accept-Encoding: gzip, deflate   支持的压缩编码
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; NetworkBench/5.0.1.20) 客户端浏览器信息
Host: i2.sinaimg.cn  主机
Connection: Keep-Alive  持久连接方式
1 day ago, this page was being read.


Subscribe to Comments