这是我参与「第五届青训营 」笔记创作活动的第6天。
常见的HTTP状态码
- 200:服务器已成功处理请求
- 301,永久性重定向,表示资源已被分配了新的 URL
- 302,临时性重定向,表示资源临时被分配了新的 URL
- 303,表示资源存在另一个URL,用GET方法获取资源
- 304,(未修改)自从上次请求后,请求网页未修改过。服务器返回此响应时,不会返回网页内容
- 400(错误请求)服务器不理解请求的语法
- 401表示发送的请求需要有通过HTTP认证的认证信息
- 403(禁止)服务器拒绝请求
- 404(未找到)服务器找不到请求网页
- 500,(服务器内部错误)服务器遇到错误,无法完成请求
- 503,表示服务器处于停机维护或超负载,无法处理请求
http和https的区别
1、HTTPS 协议需要到 CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。
2、HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。
3、HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)
http1.0和http1.1和http2.0的区别
http1.1相较http1.0来说:
- 实现了长连接,即在一个tcp连接中可以发起多个http请求和响应,减少了建立和关闭连接的消耗,在HTTP1.1中默认开启长连接keep-alive。
- 节省带宽,http1.1支持只发送header信息,不带任何body信息。
- 新增缓存处理:HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。
http1.1相较http2.0来说:
- http2.0实现了多路复用,就是指在一个tcp连接中,可以并发处理多个请求,并发请求的数量比HTTP1.1大了好几个数量级,HTTP1.1也可以多建立几个TCP连接,来支持处理更多并发的请求,但是创建TCP连接本身也是有开销的。
- http2.0支持头部数据压缩,HTTP1.1不支持header数据的压缩,HTTP2.0使用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输就会更快。
- http2有服务器主动推送机制:服务器会推送它认为客户端可能需要的资源到客户端的缓存中,以此来避免往返的延迟。
- http2采取二进制数据格式而非文本格式