HTTP

  1. OSI 七层模型指什么
  • OSI:open system interconnection reference model 开放式系统信号互联参考模型,是一种为了使全世界的计算机互联为网络的标准框架。
  • 分为七层:从下到上,分别为物理层,数据链路层,网络层,传输层,会话层,表达层,应用层。
    physical layer,data link layer,network layer,transport layer,session layer,presentation layer,application layer;
    OSI模型.jpg

    reference
  1. 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 发给服务器
  • 服务器接受这个报文,进行解析,同时返回相应的响应信息。
  • 浏览器接受到服务器传来的请求,进行解析同时展示于页面之上。
  • 客户端和服务器通信断开。
  1. 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
  1. HTTP 协议有几种和服务器交互的方法
  • get 、post 、put、delete、trace、option、head
  1. 状态码200,301,304,403,404,500,503分别代表什么意思
  • 200 通信成功。一切正常,对于请求和应答的文档都在后面
  • 301 重定向,资源转移,应该请求新的地址
  • 304 缓存没有被modified
  • 403 forbidden 资源不可用。一般没有权限去请求
  • 404 not found 找不到页面
  • 500 server error 服务器出现状况,无法完成请求
  • 503 server override 服务器因任务过载或维护,而答应
  1. 报文有哪几部分组成?
    报文:the data block is that the client commit with the server / 是客户端与服务端传递的数据包
    组成:三部分
  • start line 对报文进行描述的起始行
  • heard 包含属性的首部
  • body 可选的包含信息的数据块
  1. 请求头的格式和作用是什么?给个范例截图说明
    看懂英文就知道什么作用了,😳

  2. 首部的格式和作用是什么?给个范例截图说明

  3. 主体的作用是什么?给个范例

  4. 简述浏览器缓存是如何控制的

  • 三次握手

  • 第一次握手,客户端发出请求握手的报文,
  • 第二次握手,服务器接受到请求的报文,然后返回一个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
  1. 下图各个参数是什么意思
    解释

    看懂英文就好了。。。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容