(2)http基本知识&特性

2020-12-15  本文已影响0人  hedgehog1112
本文只包含一

二、概要: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

上一篇下一篇

猜你喜欢

热点阅读