johanazhu / fe

前端知识地图 五年前端三年面试 元前端
https://fe.azhubaby.com
MIT License
50 stars 9 forks source link

HTTP相关 #10

Open johanazhu opened 3 years ago

johanazhu commented 3 years ago

我就是想尝试写写看,等会删

johanazhu commented 3 years ago

HTTP有哪些请求方法?

http/1.1 规定了以下请求方式(注意:都是大写)

GET:通常用来获取资源

HEAD:获取资源的元信息

POST:提交数据,即上传数据

PUT:修改数据

DELETE:删除资源(几乎用不到)

OPTIONS:列出可对资源实行的请求方式,用来跨域请求

CONNECT:建立连接隧道,用于代理服务器

TRACE:追踪请求-响应的传输路径

johanazhu commented 3 years ago

HTTP 队头阻塞

HTTP传输是基于 请求-应答 的模式进行的,报文必须是一发一收,但值得注意的是,里面的任务被放在一个任务队列中串行执行,一旦队首的请求处理太慢,就会阻塞后面的请求处理

通俗理解:发起了请求,但是响应还没回应,就引起了”塞车“

解决方案:

并发连接(多建立几个 TCP 连接)

但是对同一个服务器,最多建立 6 个连接

域名分片

一个域名最多并发6个长连接,那我多分几个域名

多路复用

把每个请求和响应当作一个流(Stream),每个 Stream 都有一个 ID。每个 Stream 可以有多个帧(Frame),Frame 中保存数据

这是HTTP2的解决方案

johanazhu commented 3 years ago

HTTP 队头阻塞

HTTP传输是基于 请求-应答 的模式进行的,报文必须是一发一收,但值得注意的是,里面的任务被放在一个任务队列中串行执行,一旦队首的请求处理太慢,就会阻塞后面的请求处理

通俗理解:发起了请求,但是响应还没回应,就引起了”塞车“

解决方案:

并发连接(多建立几个 TCP 连接)

但是对同一个服务器,最多建立 6 个连接

域名分片

一个域名最多并发6个长连接,那我多分几个域名

多路复用

把每个请求和响应当作一个流(Stream),每个 Stream 都有一个 ID。每个 Stream 可以有多个帧(Frame),Frame 中保存数据

这是HTTP2的解决方案

你好,HTTP