美文网首页
HTTP简单协议

HTTP简单协议

作者: jiayuiii | 来源:发表于2019-01-25 11:39 被阅读0次

HTTP用于客户端和服务器端之间的通信

请求资源一端成为客户端,提供相应资源的一端叫做服务器端

通过请求和响应的交换达成通信

HTTP协议规定请求从客户端发出,服务器响应该请求并返回。

请求报文示例

请求报文是由请求方法,请求uri和协议版本,还有可选的请求首部字段,和内容实体组成的

响应报文示例

响应报文由 协议版本,状态码,状态原因,和可选的首部字段还有请求的实体主体构成

HTTP是不保存状态协议

HTTP协议不对请求和响应之间的通信状态进行保存,也就是说在HTTP这个级别里,协议对于发送过的请求和相应都不做持久化处理。HTTP也因此而变得十分简单,但是不能满足持久化的需求,所以,后面我们将引入coolie来解决这个问题。

请求URI定位资源

图为请求http://hackr .jp/index.htm

如果不是为了请求资源而发起请求,而只是为了访问服务器,可以用*代替URI

告知服务器意图的HTTP方法

HTTP1.1和HTTP1.0 的方法

get 请求资源的方法

post 传输主体实体的方法

put 传输文件的方法

和ftp一样,要在报文的主体包含上传的内容,存放到指定的URI那里

但是鉴于http1.1不具有验证机制,任何人都可以上传文件存在安全性问题,一般不使用。除非配合web程序的验证机制或者采用REST(REpresentational State Transfer,表征状态转移)标准的同类 Web 网站,就可能会开放使用 PUT 方法

head 获得报文首部的方法

和get差不多,但是不返回内容实体主体,只是返回响应的首部

delete : 删除文件的方法

和put相反,把URI内容删除,同样也是谁都可以删除的,一般不使用

options: 询问支持的方法

对应前面的不需要URI的请求方法

trace :追踪路径的方法

TRACE 方法是让 Web 服务器端将之前的请求通信环回给客户端的方 法。

发送请求时,在 Max-Forwards 首部字段中填入数值,每经过一个服 务器端就将该数字减 1,当数值刚好减到 0 时,就停止继续传输,最 后接收到请求的服务器端则返回状态码 200 OK 的响应。 客户端通过 TRACE 方法可以查询发送出去的请求是怎样被加工修改 / 篡改的。这是因为,请求想要连接到源目标服务器可能会通过代理 中转,TRACE 方法就是用来确认连接过程中发生的一系列操作。 但是,TRACE 方法本来就不怎么常用,再加上它容易引发 XST(Cross-Site Tracing,跨站追踪)攻击,通常就更不会用到了。

就是查看访问几层之后收到的请求你是什么

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

示意图

例子

持久连接节省通信量

由于TCP协议的特性,发送一次就建立一次连接和断开一次连接,所以当一个页面发起多次请求的时候,会增加许多通信开销

所以我们要做到持久化连接

,HTTP/1.1 和一部分的 HTTP/1.0 想出了 持久连接

持久连接的特点是,只要任意一端 没有明确提出断开连接,则保持 TCP 连接状态。在HTTP1.1中,所有的连接默认都是持久连接,

管线化

从前都是等前一个请求得到响应后才开始发下一个请求,使用管线化技术后则不用等响应就可以把请求全部发完,加快了传输速率。

请求的数量越多,管线化的优势就越明显


 使用 Cookie 的状态管理

对应前面提到的状态持久化,由于HTTP是无状态协议,所以我们引入了cookie技术。

cookie技术通过在请求和响应报文中写入cookie信息来控制客户端的状态

cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息来通知客户端保存cookie,下一次发送的时候在请求报文中加入cookie一起发过去

服务器发现cookie之后,会检查是哪一个客户端发过来的,然后对比在服务器上的记录,找到之前的状态信息

报文中加入cookie图示

相关文章

网友评论

      本文标题:HTTP简单协议

      本文链接:https://www.haomeiwen.com/subject/rzuujqtx.html