二、概要:http优点:简单、灵活和易于扩展、应用广泛和跨平台
http缺点:「无状态、明文传输」「不安全」
http性能:长连接、管道网络传输、队头阻塞
一、HTTP 基本概念
HTTP 是超文本传输协议,HyperText Transfer Protocol。拆成三个部分:超文本、传输、协议
1. 「协议」
「协」:两个以上的参与者,你和房东。如:「三方协议」「租房协议」
「仪」:参与者行为约定和规范。违约如何处理等。
2. 「传输」
包含两项重要的信息:HTTP协议是一个双向协议,两点间传输数据的约定和规范
请求 - 应答:数据在 A 和 B 间传输,允许中间有中转或接力
中间人遵从 HTTP 协议,只要不打扰基本数据传输,就可添加任意额外东西
3. 「超文本」
HTTP 传输内容,图片、视频、压缩包等,都算做「文本」。「超文本」,能从一个超文本跳转到另外一个超文本。
如HTML ,本身纯文字,标签定义图片、视频链接,经浏览器解释,呈现有文字、画面网页
总结:经过三个名词解释「超文本传输协议」「服务器< -- >服务器/本地浏览器」或者其他点两点之间
2、HTTP 常见的状态码
https://www.jianshu.com/p/49fe01c6bc43
3、http 常见字段有哪些?
1)Host:客户端发请求时,指定服务器域名,可将请求发往「同一台」服务器上的不同网站。Host:www.A.com
2)Content-Length :本次回应数据长度。如1000
3)Connection 字段:客户端要求服务器使用 TCP 持久连接,以便其他请求复用
HTTP/1.1 默认持久连接,为兼容老版本HTTP,要指定 Connection 首部字段值为 Keep-Alive。
建立可复用的 TCP 连接,直到客户端或服务器主动关闭连接
4)Content-Type:回应时,告诉客户端,本次数据格式
5)Content-Type: text/html; charset=utf-8 发送的是网页,编码UTF-8
Accept: */* 客户端声明自己可以接受任何格式的数据
6)Content-Encoding 字段:说明数据压缩方法
7)Content-Encoding: gzip 告知客户端用gzip 方式压缩
Accept-Encoding: gzip, deflate 说明自己可以接受哪些压缩方法
三、http特性
1、HTTP(1.1)优点
「简单、灵活和易于扩展、应用广泛和跨平台」
1.简单:报文格式header + body,头部key-value
2. 灵活和易于扩展:
各类请求方法、URI/URL、状态码、头字段等每个组成都可自定义和扩充。
HTTP 工作在应用层( OSI 第七层),下层可以随意变化。
HTTPS 在 HTTP 与 TCP 间增加SSL/TLS 安全传输层,HTTP/3把TCPP层换成基于 UDP 的 QUIC
3. 应用广泛和跨平台
2、缺点
协议优缺点一体双刃剑,「无状态、明文传输」「不安全」
1. 无状态双刃剑
好处,不需额外资源记HTTP 状态,减轻服务器负担,把更多CPU 和内存外提供服务
坏处,关联性操作时麻烦,如登录->添加购物车->下单->结算->支付,都要知道用户身份,每次都要问一遍身份信息。
Cookie解决:在请求和响应报文中写入, Cookie 信息来控制客户端状态
相当于:客户端第一次请求后,服务器会下发一个装有客户信息的「小贴纸」,后续客户端请求服务器的时候,带上「小贴纸」,服务器就能认得了了,
2. 明文传输双刃剑
传输过程信息,方便阅读的,F12 控制台或 Wireshark 抓包都可看
HTTP 所有信息都暴露,容易窃取
3. 不安全:HTTPS 方式解决,引入 SSL/TLS 层
3、HTTP/1.1 性能
基于 TCP/IP,用「请求 - 应答」通信模式
1. 长连接
任意一端没明确提出断开连接,保持连接状态
HTTP/1.1 提出长连接,减少重复建立和断开所造成额外开销,减轻服务器负载
早期HTTP/1.0 性能问题,发起请求,要新建一次 TCP 连接(三次握手),串行请求做无畏TCP 连接建立和断开,增加通信开销
2. 管道网络传输
同一TCP 连接里,客户端可发起多个请求,不必发出回来,就继续发,减少响应时间
3. 队头阻塞
「请求 - 应答」模式加剧HTTP 性能问题。
顺序发送阻塞时,后面排队也阻塞。HTTP/1.1 性能一般般,后续HTTP/2 和 HTTP/3 就是优化 HTTP 性能
https://mp.weixin.qq.com/s/bUy220-ect00N4gnO0697A
网友评论