前端必知必会HTTP请求系列(二)简单一点的HTTP协议

图片描述

http协议用户客户端和服务器之间的通讯

http协议和TCP/IP协议族内的其余众多协议相同,用于客户端和服务器之间的通讯
那么问题来个若是两台服务器之间一台服务器向另外一台服务器进行接口请求那谁是客户端呢?因此这里的客户端和服务端是相对的概念,若是一端担任客户端的角色,另外一端就须要担任服务器端的角色不是绝对的概念。html

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

http协议中已经规定了请求是从客户端发出,最后由服务端响应这个请求并返回。
下面来看一个请求中的报文,前端

GET /index.html HTTP/1.1
Host: baidu.cn

起始行的开头的GET表示请求访问服务器的类型,成为方法(method)对于先后端的同窗最熟悉不过了。
随后的字符串index.html指明了请求访问的资源对象。也叫请求的URI,最后HTTP/1.1就是咱们http的版本号,用来告诉客户端使用的http协议功能。web

http是不保存状态的协议

HTTP是一种不保存状态,即无状态协议。HTTP协议自身不对请求和响应之间的通讯状态进行保存,也就是说HTTP这个级别。协议对于发送过的请求或者响应都不作持久化处理。segmentfault


因此在使用http协议的时候,每当有新的请求发送时,就会有对应的新的响应产生,协议自己并不保留以前一切的请求或响应报文信息。这是为了更快的处理大量食物,确保协议的可伸缩性,而特地把http协议设计成如此简单的。
可是随着web的发展,由于没有转态在某些业务场景下由于无状态致使业务变得棘手了,例如,如今的电商平台,即时他在别的页面进行浏览商品的时候咱们也须要保持该用户的登陆状态,因此为了实现这个需求,http协议引入了Cookie技术。稍后会有详解。后端

请求URI定位资源

HTTP协议使用URI定位互联网上的资源,正是应为URI的特定功能,在互联网上任意位置的资源能访问到。浏览器

告知服务器意图的http方法

一、GET:获取资源
get方法用来请求访问已被URI识别的资源,指定的资源经服务器端解析后返回响应内容。若是请求的是文本。那就保持原样返回。
二、POST:传输实体
POST方法用来传输实体的主体。
虽然用GET方法也能够传输实体的主体,可是通常不用GET方法进行传输,而是用POST方法。虽然说POST和GET很类似。可是POST的主要目的不是获取响应的主题内容。
三、PUT:传输文件
PUT方法用来传输文件,就像FTP协议的文件上传同样。要求在请求报文的主题中包含文件内容。而后保存到请求URI指定的位置去。
四、HEAD:获取报文首部
HEAD方法和GET方法同样,只是不返回报文主体的部分。用于确认URI的有效性及更新日期等等。
五、DELETE:删除文件
DELET方法用来删除文件,是与PUT相反的方法。
DELET方法安请求URI删除指定的资源。
六、OPTIONS:询问支持得方法
OPTIONS方法用来查询针对URI指定的资源支持得方法。安全

持久链接节省通讯量

在HTTP协议的初始版本中,没进行一次HTTP通行就要断开一次TCP连接。
以当年的通讯状况来讲,由于都是些内容很小的文本传输,因此即便这样也没有多大问题。可随着HTTP的普及。文档中包含有大量的图片的状况多了起来。
好比浏览器浏览一个包含多张图片的HTML页面时,在发送请求访问HTML页面资源的同时,也会请求HTML页面里面包含的其余资源,所以每次请求都会形成无谓的TCP链接创建和断开,增长通行量的开销。
持久链接
为了解决上诉TCP链接的问题,HTTP/1.1和一部分的HTTP/1.0想出了持久链接,也称为HTTP keep-alive的方法。持久链接的特色是,只要任意一端没有明确提出断开链接,则保持TCP链接转态。
HTTP/1.1中,全部的链接默认都是持久链接,可是在HTTP/1.0中并无标准化。虽然有一部分服务器经过非标准手段实现了持久化链接。但服务器端不必定可以支持持久化链接。毫无疑问,除了服务端,客户端也须要支持持久化链接。
管线化
持久化链接使得多数请求以管线化方式发送成为可能。从前发送请求后需等待并受到响应。才能发送下一个请求。管线化技术出现后。不用等待亦可直接发送下一个请求。
这样就可以作到同时并行发送多个请求。而不须要一个接一个地等待响应。服务器

使用Cookie的状态管理

以前咱们提过HTTP是无状态协议,它不对以前发生过的请求和响应的状态进行管理,不能否认,无状态协议固然有它的优势。因为没必要保存状态,天然能够减小服务器的CPU及内存资源的消耗。从另外一个侧面来讲,也正是由于HTTP协议自己是很是的简单,因此才会被应用在各类场景。 网络

为了解决这个问题,Cookie出现了,Cookie会根据从服务器端发送的响应报文内的一个叫作Set-Cookie的首部字段,通知客户端保存Cookie,下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie以后发送出去。
服务器端发现客户端发送过来的Cookie后,回去检查到底是从哪个客户端发送来的请求,而后对比服务器上的记录,最后获得以前的转态信息。spa


前端必知必会HTTP请求系列(一)了解Web及网络基础
前端必知必会HTTP请求系列(二)简单一点的HTTP协议
前端必知必会HTTP请求系列(三)HTTP,报文内部的HTTP信息 前端必知必会HTTP请求系列(四)返回结果的HTTP状态码 前端必知必会HTTP请求系列(五)与HTTP协做的web服务器 前端必知必会HTTP请求系列(六)HTTP的首部 前端必知必会HTTP请求系列(七)确保Web安全的HTTPS 前端必知必会HTTP请求系列(八)确认访问用户身份的认证 前端必知必会HTTP请求系列(九)基于HTTP的功能追加协议 前端必知必会HTTP请求系列(十)构建Web内容的技术 前端必知必会HTTP请求系列(十一)Web攻击技术 有什么问题能够到评论区留言,持续关注,不断更新!

相关文章
相关标签/搜索