- OSI 七层模型指什么
- OSI:open system interconnection reference model 开放式系统信号互联参考模型,是一种为了使全世界的计算机互联为网络的标准框架。
- 分为七层:从下到上,分别为物理层,数据链路层,网络层,传输层,会话层,表达层,应用层。
physical layer,data link layer,network layer,transport layer,session layer,presentation layer,application layer;
reference
- HTTP 的工作原理是什么?
HTTP(hyperText transfer protocol) 超文本传输协议,是发生在OSI模型的application layer上的应用。(应用层的作用:为应用软件设置的界面,以便与另一应用软件进行通信)。其是一种客户端终端(用户)和服务器进行请求和响应的标准。
工作流程:
- client send request to the server
- server receives request and handles the request of the client and send the result of handle request
- in the transfer road ,it maybe cross the gateway(网关) or the proxy server or tunnel(隧道)
reference
reference
details
- 客户端和服务器建立通信连接。
- 客户端的应用程序发出请求,而这个请求(针对frontend来说)被浏览器包装成HTTP报文,其中包含start line ,head,body 发给服务器
- 服务器接受这个报文,进行解析,同时返回相应的响应信息。
- 浏览器接受到服务器传来的请求,进行解析同时展示于页面之上。
- 客户端和服务器通信断开。
- URI 的格式是什么?常见的协议有哪些
URI: uniform resource identifier
一般由URL 和URN 组成
- url :通过描述资源的位置来描述资源
- URN: 通过名字来识别资源,一般和位置无关
format:<scheme>://<user><password><host>:<port>/<path>;<params>?<query>#<hash>
the protocol are file、ftp、mailto
- HTTP 协议有几种和服务器交互的方法
- get 、post 、put、delete、trace、option、head
- 状态码200,301,304,403,404,500,503分别代表什么意思
- 200 通信成功。一切正常,对于请求和应答的文档都在后面
- 301 重定向,资源转移,应该请求新的地址
- 304 缓存没有被modified
- 403 forbidden 资源不可用。一般没有权限去请求
- 404 not found 找不到页面
- 500 server error 服务器出现状况,无法完成请求
- 503 server override 服务器因任务过载或维护,而答应
- 报文有哪几部分组成?
报文:the data block is that the client commit with the server / 是客户端与服务端传递的数据包
组成:三部分
- start line 对报文进行描述的起始行
- heard 包含属性的首部
- body 可选的包含信息的数据块
请求头的格式和作用是什么?给个范例截图说明
看懂英文就知道什么作用了,😳首部的格式和作用是什么?给个范例截图说明
主体的作用是什么?给个范例
简述浏览器缓存是如何控制的
-
三次握手
- 第一次握手,客户端发出请求握手的报文,
- 第二次握手,服务器接受到请求的报文,然后返回一个ack报文,同时为这次连接进行资源的分配。
-
第三次握手,客户端接受到服务器发出的ack报文,然后开始为连接进行分配资源。此后,建立了tcp连接。
-
四次分手
- 因为断开连接,有可能是发生在客户端或者是服务端,然后称为主机一二
- 主机一想要断开TCP连接,然后想主机二发送一个fin报文
- 主机二接受fin报文,先发送一个ack,告诉主机一我还有数据没有发完。完成数据之后,主机二进入到ack-wait的状态,在发送一个FIN给主机一,说明自己要关闭连接的信息。
- 主机一接收到主机二接受到FIN,知道主机二关闭了连接,但是不相信这个是不是真的,所以在发了一次,去确认主机二是不是关闭了。等待2msl之后,没有反馈,就知道自己不需要发送什么信号,然后就自己进行断开链接
- 主机二等了2msl之后,发现没有信号发过来,就知道主机一断开了信号,然后也自己断开了链接。
reference
reference
同时,我们要知道HTTP链接是一个无状态的短链接,用完就会断开连接的。所以当我们进行一些长时间的通信的时候,就发现现在的HTTP协议是无法完成的,所以要使用一些方式:轮询
http长链接和短链接
一般在即时聊天中使用长链接的多,实现方式
- content-type:keep-alive
- long polling
- polling
- websocket
- sse (server-sent event)
reference