【图解http阅读笔记】2019年3月份面试过程中,老是被问到http,所以就在此做一个总结一、网络基础TCP/IP
面试过程中被问到的问题:
1、http1升到http2之后,最大的改变是什么
2、请写出http报文的组成部分
3、http请求头中都包含什么属性
4、如果每次进行http请求都是重新请求数据,而不是取的缓存,应该什么设置?
1、TCP/IP是互联网相关的各类协议族的总称
2、TCP/IP协议按层次分别分为应用层、传输层、网络层和数据链路层
应用层:决定了向用户提供应用服务时通信的活动,http协议处于该层
传输层:对上层应用层,提供处于网络连接中的两台计算机之间的数据传输
,tcp(传输控制协议)和udp(用户数据协议)处于该层
网络层(网络互联层):用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方
链路层(数据链路层,网络接口层):用来处理连接网络的硬件部分,包括控制操作系统、硬件的设备驱动及光纤等物理可见的部分
利用TCP/IP协议族进行网络通信时,通过分层顺序与对方进行通信
发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息,反之,接收端在层与层之间传输数据时,每经过一层时会把相应的首部消去
文章图片
3、IP协议是把各种数据包传送给对方,而要保证确实传送到对方那里,则需要满足各类条件,其中两个重要条件为IP地址和MAC地址
IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址,IP地址可变换,但MAC地址基本上不会更改
4、TCP协议位于传输层,提供可靠的字节流服务
TCP协议为了更容易传送大数据将数据分割成以报文段为单位的数据包进行管理,而且TCP采用三次握手策略,能够确认数据最终是否送达到对方
握手过程中使用TCP的标志(flag)——SYN(synchronize)和ACK(acknowledgement)
①发送端首先发送一个带有SYN标志的数据包给对方
②接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息
③发送端再回传一个带有ACK标志的数据包,代表“握手”结束
文章图片
二、HTTP
1、http协议用于客户端和服务器端之间的通信
请求报文的构成:请求方法、请求URI(请求访问的资源对象)、协议版本、可选的请求首部字段和内容实体
文章图片
响应报文的构成:协议版本、状态码(表示请求成功或失败的数字代码)、用以解释状态码的原因短语、可选的响应首部字段以及实体主体
文章图片
2、http协议为无状态协议:自身不对请求和响应之间的通信状态进行保存
无状态协议的有点:减少服务器的CPU以及内存资源的消耗
在有些场合不需要http无状态的这个特点,这个适合就要用到cookie
3、HTTP报文
HTTP报文本身是由多行数据构成的字符串文本