前端需要了解的http知识

一、五层协议
1. OSI(Open System Interconnection 开放式系统互联)七层协议
1)应用层 2)表示层 3)会话层 4)传输层 5)网络层 6)数据链接层 7)物理层
2. TCP/IP四层网络协议 (Transmission Control Protocol 传输控制协议)
1)应用层 2)运输层 3)网络层 4)网络接口层
3. 折中后的五层协议
1)应用层(dns,http) DNS解析成IP并发送http请求
2)传输层(tcp,udp) 建立tcp连接(三次握手)
3)网络层(IP,ARP) IP寻址
4)数据链路层(PPP) 封装成帧
5)物理层(利用物理介质传输比特流) 物理传输(然后传输的时候通过双绞线,电磁波等各种介质)
简括:
从应用层的发送http请求,到传输层通过三次握手建立tcp/ip连接,再到网络层的ip寻址,再到数据链路层的封装成帧,最后到物理层的利用物理介质传输。

二、HTTP状态码
1XX 用于指定客户端相应的某些动作
2XX 用于表示成功
3XX 用于已经移动的文件并且被包含在定位头信息中指定心的地址信息(重定向,为了完成请求,必须进一步执行的动作)
4XX 用于指出客户端错误
5XX 用于支持服务器错误

100 继续;101 分组交换协议
200 ok;201 被创建;202 被采纳;203 非授权信息;204 无内容;205 重置内容;206 部分内容;
300 多选项;301 永久地传递;302 找到;303 参见其他;304 未改动;305 使用代理;307 暂时重定向;
400 错误请求(可能是get请求写成post请求);401 未授权;402 要求付费;403 禁止;405 不允许的方法;406 不被采纳;407 要求代码授权;
408 请求超时;409 冲突;410 过期的;411 要求的长度;412 前提不成立;413 请求实例太大;
414 请求url太大;415 不支持的媒体类型;416 无法满足的请求范围;417 失败的预期;
500 内部服务器错误;501 未被使用;502 网关错误;503 不可用的服务;504 网关超时;505 HTTP版本未被支持;

三、http 1.1 与 http 1.0 的区别
1. http 1.0 对于每个连接都得建立一次连接, 一次只能传送一个请求和响应, 请求就会关闭, http1.0 没有 Host 字段,而 http1.1 在同一个连接中可以传送多个请求和响应, 多个请求可以重叠和同时进行, http1.1 必须有 host 字段
2. http1.1 中引入了 ETag 头, 它的值 entity tag 可以用来唯一的描述一个资源. 请求消息中可以使用 If-None-Match 头域来匹配资源的 entitytag 是否有变化
3. http1.1 新增了 Cache-Control 头域(消息请求和响应请求都可以使用), 它支持一个可扩展的指令子集
4.http1.0 中只定义了 16 个状态响应码, 对错误或警告的提示不够具体. http1.1 引入了一个 Warning 头域, 增加对错误或警告信息的描述. 且新增了 24 个状态响应码

四、TCP三次握手和四次挥手
1. 三次握手:
首先 Client 端发送连接请求报文,Server 段接受连接后回复 ACK 报文,并为这次连接分配资源。Client 端接收到 ACK 报文后也向 Server 段发生 ACK 报文,并分配资源,这样 TCP 连接就建立了。
2. 四次挥手:
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

五、HTTP与HTTPS的区别
1. Http 协议运行在 TCP 之上,明文传输,客户端与服务器端都无法验证对方的身份;Https 是身披 SSL(Secure Socket Layer)外壳的 Http,运行于 SSL 上,SSL 运行于 TCP 之上,是添加了加密和认证机制的 HTTP。二者之间存在如下不同:
2. 端口不同:Http 与 Http 使用不同的连接方式,用的端口也不一样,前者是 80,后者是 443;
3. 资源消耗:和 HTTP 通信相比,Https 通信会由于加减密处理消耗更多的 CPU 和内存资源;
4. 开销:Https 通信需要证书,而证书一般需要向认证机构购买;
6. Https 的加密机制是一种共享密钥加密和公开密钥加密并用的混合加密机制。

六、HTTP的几种请求方法的用途
1. GET 方法:发送一个请求来取得服务器上的某一资源
2. POST 方法:向 URL 指定的资源提交数据或附加新的数据
3. PUT 方法:跟 POST 方法很像,也是想服务器提交数据。但是,它们之间有不同。PUT 指定了资源在服务器上的位置,而 POST 没有
4. HEAD 方法:只请求页面的首部
5. DELETE 方法:删除服务器上的某资源
6. OPTIONS 方法:它用于获取当前 URL 所支持的方法。如果请求成功,会有一个 Allow 的头包含类似“GET,POST”这样的信息
7. TRACE 方法:TRACE 方法被用于激发一个远程的,应用层的请求消息回路
8.CONNECT 方法:把请求连接转换到透明的 TCP/IP 通道

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzgfzx.html