Http协议原理学习

HTTP协议用于在Internet上发送和接收消息。HTTP协议是一种请求-应答式的协议 ——客户端发送一个请求,服务器返回该请求的应答,所有的请求与应答都是HTTP包。HTTP协议使用可靠的TCP连接,默认端口是80。HTTP的第一 个版本是HTTP/0.9,后来发展到了HTTP/1.0,现在最新的版本是HTTP/1.1。HTTP/1.1由RFC 2616 定义。

在HTTP 中,Client/Server之间的会话总是由客户端通过建立连接和发送HTTP请求包初始化,服务器不会主动联系客户端或要求与客户端建立连接。浏览 器和服务器都可以随时中断连接,例如,在浏览网页时你可以随时点击"停止"按钮中断当前的文件下载过程,关闭与Web服务器的HTTP连接。

HTTP 1.1支持七种请求方法:GET、POST、HEAD、OPTIONS、PUT、delete和TRACE等,常用的为请求方法是GET和POST。

HTTP是TCP/IP的一个子集。提到TCP/IP,就会涉及到建立连接的 “三次握手”

URI(Uniform Resource Identifier)统一资源标识符。
URL(Uniform Resource Locator)统一资源定位符。
URN(Uniform Resource Name)统一资源命名。


常用HTTP请求方法GET、POST:
两者都是 明文传输。
GET是获取指定URL上的资源,是读操作,重要的一点是不论对某个资源GET多少次,它的状态是不会改变的,在这个意义上,我们说GET是安全的。GET返回的内容可以被浏览器,Cache服务器缓存起来。
POST的语意是对指定资源“追加/添加”数据,所以是不安全的,每次提交的POST,参与的代码都会认为这个操作会修改操作对象资源的状态,于是,浏览器在你按下F5的时候会跳出确认框,缓存服务器不会缓存POST请求返回内容。
根据HTTP协议,GET是安全的,也是 幂等的,而POST既不是安全的,也不是幂等的。

Request Headers
GET / HTTP/1.1
Host: www.google.com.hk
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
X-Chrome-UMA-Enabled: 1
X-Chrome-Variations: CLO1yQEIiLbJAQibtskBCKW2yQEIqLbJAQiptskBCLS2yQEIsIPKAQ==
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: NID=64=s7N6adEt3QSMGNAtdoELiVDNXgjq_iRB9-xilr-MmA9_PQ4WDpdKMS6PBG0ML0s2RyrAB8-Di5elNFBi3idmFkofPLB1ac8hRYpuU6pHwGgjNd9ojnV_trrPIqndEhOM; PREF=ID=eaa7d680f41133b8:U=dcda92987d358ee5:FF=1:LD=zh-CN:NW=1:TM=1350263886:LM=1350263886:S=Z8retbLm4E9PoSbM


Response Headers
HTTP/1.1 200 OK
Date: Mon, 15 Oct 2012 02:05:29 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip
Server: gws
Content-Length: 159420
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN


参考文章:
超文本传输协议及HTTP包
HTTP状态码
Http协议三次握手过程
分清 URI、URL 和 URN
从HTTP GET和POST的区别说起
浅谈HTTP中Get与Post的区别

猜你喜欢

转载自wlei1818.iteye.com/blog/1698344
今日推荐