说一下HTTP服务的全过程及扩展问题整理

2023-03-09 18:23:22 浏览数 (1)

问题1:当我们在浏览器中输入网址,按下回车,具体发生了什么?

  • 对网址进行DNS解析,得到对应的IP地址。
  • 根据这个IP地址,找到对应的服务器,并发起TCP的三次握手。
  • 建立TCP连接后会发起HTTP请求。
  • 服务器响应HTTP请求。
  • 浏览器解析得到html代码。
  • 请求html代码中的资源(如js、css、图片等)。
  • 浏览器对页面进行渲染呈现给用户。
  • 服务器关闭关闭TCP连接。

问题2:DNS是什么?

  • DNS一般指域名系统。域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。

问题3:DNS是如何找到域名的?

  • 浏览器会检查自身的DNS缓存中有没有对应的ip地址(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存)
  • 如果还没有找到,则去 hosts文件里面去找
  • 如果host文件没有配置,那么就会去本地区DNS域名服务器进行查找。比如:小区的网络提供商。
  • 本地区DNS域名服务器也不能解析,会去根域名服务器请求解析(.com.cn.org等根域名服务器)。
  • 根域名服务器查询并返回域名对应的服务器的地址。根域名服务器通常是你注册的域名服务器。
  • Name Server域名服务器会查询存储的域名和ip的映射关系表。
  • 把解析的结果缓存在本地系统缓存中,域名解析过程结束。

问题4:为什么HTTP协议要基于TCP来实现?

  • TCP(传输层)是一个端到端的可靠的面相连接的协议,HTTP基于传输层TCP协议不用担心数据传输的各种问题(当发生错误时,会重传)

问题5:说一下三次握手?

  • 拿到域名对应的IP地址后,浏览器会根据IP找到服务器,根据端口号找到所在服务中的web服务,发送一个TCP报文。(我准备好了,你准备好了吗)
  • 这个请求到达服务端后,服务端会给予前端确认收到的响应信息(报文)。(我也准备好了,你确认下)
  • 浏览器接收到来自服务器确认收到报文后,明确了从客户端到服务器的数据传输是正常的,并返回一段TCP报文。(确认成功)

问题6:聊一聊四次挥手?

(断开请求链接 2 次, 断开响应链接 2 次)

  • 客户端告诉服务端:请求数据发送完毕,可以断开
  • 服务端告诉客户端:请求数据接受完毕,可以断开
  • 服务端告诉客户端:响应数据发送完毕,可以断开
  • 客户端告诉服务端:响应数据接受完毕,可以断开

0 人点赞