一.HTTP 协议用于客户端和服务器端之间的通讯安全
二.经过请求和响应的交换达成:服务器
1.请求报文中的内容(意思是:请求访问某台 HTTP 服务器上的 /index.htm 页面资源):
GET /index.htm
HTTP/1.1 Host: hackr.jp网络
.
(起始行开头的GET表示请求访问服务器的类型,称为方法 (method);字符串 /index.htm 指明了请求访问的资源对象, 也叫作请求 URI(request-URI); HTTP/1.1,即 HTTP 的版本号,用来提示客户端使用的 HTTP 协议功能。 请求报文是由请求方法、请求 URI、协议版本、可选的请求首部字段和内容实体构成的。)架构
2.响应报文中的内容:less
(在起始行开头的 HTTP/1.1 表示服务器对应的 HTTP 版本。 紧挨着的 200 OK 表示请求的处理结果的状态码(status code)和缘由 短语(reason-phrase)。下一行显示了建立响应的日期时间,是首部 字段(header field)内的一个属性。 接着以一空行分隔,以后的内容称为资源实体的主体(entity body)。响应报文基本上由协议版本、状态码(表示请求成功或失败的数字代码)、用以解释状态码的缘由短语、可选的响应首部字段以及实体主体构成。)网站
三.HTTP 是不保存状态的协议:加密
做用:为了更快地处理大量事务,确保协议的可伸缩性,而特地把 HTTP 协议设计成如此简单的。
局限:随着 Web 的不断发展,因无状态而致使业务处理变得棘手的状况增多了。好比,用户登陆到一家购物网站,即便他跳转到该站的其余页面后,也须要能继续保持登陆状态。
解决方案:HTTP/1.1 虽然是无状态协议,但为了实现指望的保持状态功能,因而引入了 Cookie 技术(后面文章会详谈)。有了 Cookie 再用 HTTP 协议通讯,就能够管理状态了。spa
四.请求 URI 定位资源:架构设计
五.告知服务器意图的 HTTP 方法设计
1.GET :获取资源
2.POST:传输实体主体
3.PUT:传输文件
// 响应1的意思实际上是请求执行成功了,但无数据返回
4.HEAD:得到报文首部
5.DELETE:删除文件
6.OPTIONS:询问支持的方法
7.TRACE:追踪路径
8.CONNECT:要求用隧道协议链接代理
总结:
五.持久链接节省通讯量
1.短链接:HTTP 协议的初始版本中,每进行一次 HTTP 通讯就要断开一次 TCP 链接。
2.持久链接的特色是:只要任意一端 没有明确提出断开链接,则保持 TCP 链接状态。
持久链接的好处:减小了 TCP 链接的重复创建和断开所形成的额外开销,减轻了服务器端的负载。另外,减小开销的那部分时间,使 HTTP 请求和响应可以更早地结束,这样 Web 页面的显示速度也就相应提升了。
3.管线化:持久链接使得多数请求以管线化(pipelining)方式发送成为可能。从前发送请求后需等待并收到响应,才能发送下一个请求。管线化技术出现后,不用等待响应亦可直接发送下一个请求。而管线化技术则比持久链接还要快。请求数越多,时间差就越明显
六.Cookie 技术
1.引入起因:HTTP协议保留无状态协议这个特征的同时又要解决相似的矛盾问题,因而引入了 Cookie 技术。
2.工做原理:Cookie 技术经过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。Cookie 会根据从 端发送的响应报文内的一个叫作 Set-Cookie 的首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。服务器端发现客户端发送过来的 Cookie 后,会去检查到底是从哪个客户端发来的链接请求,而后对比服务器上的记录,最后获得以前的状态信息。
3.图例:
发生 Cookie 交互的情景:
HTTP请求报文和响应报文的内容以下: