共计 1027 个字符,预计需要花费 3 分钟才能阅读完成。
HTTP 概述
HTTP 是一种可能获取如 HTML 这样的网络资源的 protocol(通信协定)。它是在 Web 上进行数据交换的根底,是一种 client-server 协定,也就是说,申请通常是由像浏览器这样的接受方发动的。一个残缺的 Web 文档通常是由不同的子文档拼接而成的,像是文本、布局形容、图片、视频、脚本等等。
HTTP 申请响应过程
当我拜访 https://segmentfault.com/writ… 时,浏览器会进行如下操作:
- DNS 服务器会首先进行域名的映射,找到拜访 https://segmentfault.com 所在的地址,而后 HTTP 客户端过程在 80 端口发动一个到服务器 https://segmentfault.com 的 TCP 连贯(80 端口是 HTTP 的默认端口)。在客户和服务器过程中都会有一个套接字与其相连。
- HTTP 客户端通过它的套接字向服务器发送一个 HTTP 申请报文。报文中会申请 /write 的资源
- HTTP 服务器通过它的套接字承受该报文,进行申请的解析工作,并从其存储器 (RAM 或磁盘) 中检索出对象 https://segmentfault.com/writ…,而后把检索进去的对象进行封装,封装到 HTTP 响应报文中,并通过套接字向客户进行发送。
- HTTP 服务器随即告诉 TCP 断开 TCP 连贯,实际上是须要等到客户承受完响应报文后才会断开 TCP 连贯。
- HTTP 客户端承受完响应报文后,TCP 连贯会敞开。HTTP 客户端从响应中提取出报文中是一个 HTML 响应文件,并查看该 HTML 文件,而后循环查看报文中其余外部对象。
- 查看实现后,HTTP 客户端会把对应的资源通过显示器出现给用户。
申请头部
申请头部蕴含如下信息:
响应头部
响应头蕴含如下信息:
首部字段 Transfer-Encoding 规定了传输报文主体时采纳的编码方式。
HTTP 版本
HTTP/1.1
- HTTP/1.1 引入了更多的缓存控制策略,如 Entity tag,If-Unmodified-Since, If-Match, If-None-Match 等
- HTTP/1.1 容许范畴申请,即在申请头中退出 Range 头部, 范畴申请在传送大的媒体文件,或者与文件下载的断点续传性能搭配应用时十分有用。
- HTTP/1.1 的申请音讯和响应音讯都必须蕴含 Host 头部,以辨别同一个物理主机中的不同虚拟主机的域名
- HTTP/1.1 默认开启长久连贯,在一个 TCP 连贯上能够传送多个 HTTP 申请和响应,缩小了建设和敞开连贯的耗费和提早。
正文完