《HTTP图解》2——简单了解HTTP协议

 1. URI>URL

 

URI:“A Uniform Resource Identifier (URI) 是一个紧凑的字符串用来标示抽象或物理资源。”

URL:“Uniform Resource Locator” (URL) 是URI的子集, 标识资源的地址

URN:URN作用就好像一个人的名字,URL就像一个人的地址。换句话说:“URN确定了东西的身份,URL提供了找到它的方式。”

 

绝对URI格式:

 

 

 

2. HTTP1.1协议结构

(1)请求报文:请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的。

 

(2)响应报文:协议版本、状态码、用于解释状态码的短语、可选的响应首部字段以及实体主体构成。

(3)HTTP是不保存状态的协议

HTTP1.1虽然是无状态协议,但为了实现保持状态,于是引入Cookie技术,有了Cookie就可以管理状态了

 

(4)请求URI定位资源

 

(5)告知服务器意图

GET:获取资源

GET用来请求访问一被URI识别的资源,如果请求的资源是文本,那就保持原样返回,如果是CGI那样的程序,则返回执行后的结果。

 

POST:传输实体主体

虽然用GET也可以传输实体,但一般用POST

 

PUT:传输文件

HTTP1.1的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全问题。所以一般不用。

 

HEAD:获取报文首部

HEAD方法和GET方法一样,只是不反悔报文主体部分。用于确认URI的有效性及资源更新的日期时间等。

 

 

DELETE:删除文件

HTTP1.1的DELETE方法自身不带验证机制,任何人都可以上传文件,存在安全问题。所以一般不用。除非配合Wev应用程序的验证机制或者遵守REST标准时还是有可能开放使用的。

 

 

OPTIONS:询问支持的方法

 

TRACE:追踪路径

不常用,加上它容易引发XST(Cross-Site-Tracing,跨站追踪)攻击

 

CONNECT:要求用隧道协议连接代理

 

(6)使用方法下达命令

 

(7)持久连接节省通信量

只要任意一端没有明确提出断开连接,则保持TCP连接状态:HTTP keep-alive

好处:在于减少了TCP连接的重复建立和断开所造成的额外开销以及更快地展示页面。在HTTP1.1中,所有的连接默认都是持久连接。

    在于还有管线化技术让并行成为可能,而不需要一个接一个地等待响应。

 

(8)使用Cookie的状态管理

不保存状态的好处:减少服务器的CPU及内存资源的消耗

Cookie原理如下图:

上图展示了发生 Cookie 交互的情景,HTTP 请求报文和响应报文的内 容如下。

 

posted @ 2017-03-07 16:36  _HLP_huang  阅读(2753)  评论(0)    收藏  举报