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,就会涉及到建立连接的[url=http://book.51cto.com/art/201108/282291.htm]“三次握手”[/url]。
URI(Uniform Resource Identifier)统一资源标识符。
URL(Uniform Resource Locator)统一资源定位符。
URN(Uniform Resource Name)统一资源命名。
[img]http://upload.wikimedia.org/wikipedia/commons/c/c3/URI_Euler_Diagram_no_lone_URIs.svg[/img]
常用HTTP请求方法GET、POST:
两者都是[color=blue]明文[/color]传输。
GET是获取指定URL上的资源,是读操作,重要的一点是不论对某个资源GET多少次,它的状态是不会改变的,在这个意义上,我们说GET是安全的。GET返回的内容可以被浏览器,Cache服务器缓存起来。
POST的语意是对指定资源“追加/添加”数据,所以是不安全的,每次提交的POST,参与的代码都会认为这个操作会修改操作对象资源的状态,于是,浏览器在你按下F5的时候会跳出确认框,缓存服务器不会缓存POST请求返回内容。
根据HTTP协议,GET是安全的,也是[url=http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html]幂等[/url]的,而POST既不是安全的,也不是幂等的。
[b]Request Headers[/b]
[b]Response Headers[/b]
参考文章:
[url=http://blog.youkuaiyun.com/aifox/article/details/810211]超文本传输协议及HTTP包[/url]
[url=http://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81]HTTP状态码[/url]
[url=http://road-study.iteye.com/blog/572289]Http协议三次握手过程[/url]
[url=http://www.ibm.com/developerworks/cn/xml/x-urlni.html]分清 URI、URL 和 URN[/url]
[url=http://www.yining.org/2010/05/04/http-get-vs-post-and-thoughts/]从HTTP GET和POST的区别说起[/url]
[url=http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html]浅谈HTTP中Get与Post的区别[/url]
在HTTP 中,Client/Server之间的会话总是由客户端通过建立连接和发送HTTP请求包初始化,服务器不会主动联系客户端或要求与客户端建立连接。浏览 器和服务器都可以随时中断连接,例如,在浏览网页时你可以随时点击"停止"按钮中断当前的文件下载过程,关闭与Web服务器的HTTP连接。
HTTP 1.1支持七种请求方法:GET、POST、HEAD、OPTIONS、PUT、delete和TRACE等,常用的为请求方法是GET和POST。
HTTP是TCP/IP的一个子集。提到TCP/IP,就会涉及到建立连接的[url=http://book.51cto.com/art/201108/282291.htm]“三次握手”[/url]。
URI(Uniform Resource Identifier)统一资源标识符。
URL(Uniform Resource Locator)统一资源定位符。
URN(Uniform Resource Name)统一资源命名。
[img]http://upload.wikimedia.org/wikipedia/commons/c/c3/URI_Euler_Diagram_no_lone_URIs.svg[/img]
常用HTTP请求方法GET、POST:
两者都是[color=blue]明文[/color]传输。
GET是获取指定URL上的资源,是读操作,重要的一点是不论对某个资源GET多少次,它的状态是不会改变的,在这个意义上,我们说GET是安全的。GET返回的内容可以被浏览器,Cache服务器缓存起来。
POST的语意是对指定资源“追加/添加”数据,所以是不安全的,每次提交的POST,参与的代码都会认为这个操作会修改操作对象资源的状态,于是,浏览器在你按下F5的时候会跳出确认框,缓存服务器不会缓存POST请求返回内容。
根据HTTP协议,GET是安全的,也是[url=http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html]幂等[/url]的,而POST既不是安全的,也不是幂等的。
[b]Request Headers[/b]
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
[b]Response Headers[/b]
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
参考文章:
[url=http://blog.youkuaiyun.com/aifox/article/details/810211]超文本传输协议及HTTP包[/url]
[url=http://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81]HTTP状态码[/url]
[url=http://road-study.iteye.com/blog/572289]Http协议三次握手过程[/url]
[url=http://www.ibm.com/developerworks/cn/xml/x-urlni.html]分清 URI、URL 和 URN[/url]
[url=http://www.yining.org/2010/05/04/http-get-vs-post-and-thoughts/]从HTTP GET和POST的区别说起[/url]
[url=http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html]浅谈HTTP中Get与Post的区别[/url]