八股背诵(一)
第一天
文章目录
第一天
1.TCP/IP模型和OSI模型?
TCP/IP 模型包括应用层、传输层、网络层和网络接口层。
- 应用层:专注于为用户提供应用功能,手机或电脑的应用软件都是在应用层实现的。应用层的数据包会发送给传输层,传输层是为应用层提供网络支持的。
- 传输层:使源端和目的端机器上的对等实体可以基于会话相互通信。传输层定义了两个端到端的传输协议分别是TCP和UDP。
- 网络层:主要用于数据传输、路由及地址解析,以保障主机可以把数据发送给任何网络上的目标。数据经过网络传输,发送的顺序和到达的顺序可能会发生改变。在网络层使用IP和地址解析协议。
- 网络接口层:定义了主机间的网络通信协议。
OSI七层模型
- 应用层,负责给应用程序提供统一的接口
- 表示层,负责把数据转换成兼容另一个系统能识别的格式;
- 会话层,负责建立、管理和终止表示层实体之间的通信会话;
- 传输层,负责端到端的数据传输;
- 网络层,负责数据的路由、转发、分片;
- 数据链路层,负责数据的封帧和差错检测,以及 MAC 寻址;
- 物理层,负责在物理网络中传输数据帧;
2.从输入URL到页面显示发生了什么?
① 输入URL并解析:输入 UR L后,浏览器会解析出协议、主机、端口、路径等信息,并构造一个HTTP请求(浏览器会根据请求头判断是否有 HTTP缓存,并根据是否有缓存决定是从服务器获取资源还是使用缓存资源)
② DNS域名解析,将域名解析成对应的IP地址:在发送HTTP请求之前,浏览器需要知道想要访问网页(URL)对应的IP地址,这就需要使用到DNS域名解析。
③ 建立TCP连接之三次握手:客户端和服务器之间进行HTTP请求和HTTP响应的过程中,需要建立起TCP连接,TCP连接需要进行三次握手。
④ 浏览器发送HTTP/HTTPS请求到web服务器
⑤ 服务器处理HTTP请求并返回HTTP报文:(HTTP响应报文和状态码也是常考的内容)服务器会接受请求并将其传递给请求处理程序并发送HTTP响应,一般响应报文包含: 请求的网页以及状态码,压缩类型,如何缓存的页面,设置的cookie;
⑥ 浏览器渲染页面。
⑦ 断开连接之TCP四次挥手:客户端和服务器之间断开连接需要进行四次挥手。
3.HTTP请求报文和响应报文是什么样子的?
用于HTTP协议交互的信息被称为HTTP报文。请求端(客户端)的HTTP报文叫做请求报文,响应端(服务器端)的叫做响应报文。HTTP报文本身是由多行数据构成的字符串文本。HTTP报文大致可分为报文首部和报文主体两块。两者由最初出现的空行来划分。通常,并不一定要有报文主体。
请求报文
HTTP的请求报文由四部分组成(请求行+请求头部+空行+请求体):
真实数据:
HTTP的请求报文由四部分组成(请求行+请求头部+空行+请求体):
请求行包括如下字段:
- 方法(Method):指定要执行的操作,如 GET、POST、PUT、DELETE 等。
- 资源路径(Resource Path):请求的资源的URI(统一资源标识符)。
- HTTP版本(HTTP Version):使用的HTTP协议版本,如 HTTP/1.1 或 HTTP/2.0。
请求头的字段较多,常使用的包含以下几个:
- Host:请求的服务器的域名。
- Accept:客户端能够处理的媒体类型。
- Accept-Encoding:客户端能够解码的内容编码。
- Authorization:用于认证的凭证信息,比如token数据。
- Content-Length:请求体的长度。
- Content-Type:请求体的媒体类型。
- Cookie:存储在客户端的cookie数据。
- If-None-Match:资源的ETag值,用于缓存控制。
- Connection:管理连接的选项,如 keep-alive。
空行是请求头部和请求主体之间的空行,用于分隔请求头部和请求主体。而请求体通常用于 POST 和 PUT 请求,包含发送给服务器的数据。
响应报文
HTTP响应报文是服务器向客户端返回的数据格式,用于传达服务器对客户端请求的处理结果以及相关的数据。一个标准的HTTP响应报文通常包含状态行、响应头、空行、响应体。
状态行包含HTTP版本、状态码和状态消息。例如:HTTP/1.1 200 OK
响应头部也是以键值对的形式提供的额外信息,类似于请求头部,用于告知客户端有关响应的详细信息。一些常见的响应头部字段包括:
- Content-Type:指定响应主体的媒体类型。
- Content-Length:指定响应主体的长度(字节数)。
- Server:指定服务器的信息。
- Expires: 响应的过期时间,之后内容被认为是过时的。
- ETag: 响应体的实体标签,用于缓存和条件请求。
- Last-Modified: 资源最后被修改的日期和时间。
- Location:在重定向时指定新的资源位置。
- Set-Cookie:在响应中设置Cookie。
- Access-Control-Allow-Origin: 跨源资源共享(CORS)策略,指示哪些域可以访问资源。
空行(Empty Line)在响应头和响应体之间,表示响应头的结束。而响应体是服务端实际传输的数据,可以是文本、HTML页面、图片、视频等,也可能为空。
4.HTTP请求方式有哪些?
HTTP 请求方式共有 9 种,分别为
- GET:获取资源
- POST:向资源提交数据
- PUT:类似 POST,向指定位置提交数据,服务器接收到这些数据后直接在当前位置创建新的资源
- PATCH:类似 PUT,但是只更新资源的部分属性
- DELETE:删除资源
- HEAD:获取资源的元信息
- CONNECT:建立特殊的连接隧道
- OPTIONS:列出可对资源实行的方法
- TRACE:追踪请求 - 响应的传输路径
5.GET和POST的请求区别?
6.HTTP请求中常见的状态码有什么?

②有序接受 (添加包序号)将数据包进行编号,按照包的顺序接收并存储。
③应答确认 (Seq/Ack应答机制)
④滑动窗口流量控制等机制 (滑动窗口协议)
②有序接受 (添加包序号)将数据包进行编号,按照包的顺序接收并存储。
③应答确认 (Seq/Ack应答机制)
④滑动窗口流量控制等机制 (滑动窗口协议)