HTTP针对性总结:URL向服务器请求的过程,以及服务器的处理

78 阅读2分钟
  1. DNS解析:浏览器先对域名解析,转换为相应的IP地址。如果DNS缓存中没有找到对应的IP地址,浏览器会向本地DNS服务器发送解析请求,从而获取服务器的IP地址

  2. 建立TCP连接:浏览器使用HTTP协议通过TCP/IP建立与服务器的连接。这个涉及到了进行三次握手,确保客户端和服务器之间可以可靠的传输数据

    • 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号
    • 第二次握手:服务器收到syn包并确认客户的SYN(ack=j+1),同时也发送一个自己的SYN包(syn=k),即SYN+ACK包,他可以同步确认客户端的SYN报文,此时服务器进入SYN_RECV状态
    • 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
  3. 发送HTTP请求:一旦TCP连接建立,浏览器会构建一个HTTP请求,包括请求方法(GET、POST)、URL路径、请求头部信息以及请求正文。然后,浏览器会将请求发送给服务器

  4. 服务器处理请求:服务器接收到浏览器发送的HTTP请求后,服务器会解析请求,识别出请求的资源路径、请求方法,以及其他相关信息

  5. 处理请求并生成响应:服务器根据请求的内容执行相应的处理逻辑,这可能包括读取文件、查询数据库、生成动态内容、调用api等操作。服务器会根据自身的业务逻辑和请求处理结果生成一个HTTP响应

  6. 发送HTTP响应:服务器把生成的HTTP响应发送回客户端。响应包括一个响应状态码、响应头部信息以及响应正文。服务器使用TCP/IP协议将响应分成小块,通过网络传输到客户端

  7. 接收和渲染响应:浏览器接收到服务器发来的HTTP响应后,会对响应进行解析。浏览器会根据响应头判断响应类型,比如是HTML页面,浏览器会解析HTML、CSS、和JS代码,并内容渲染到页面上

  8. 断开连接:渲染完成后,浏览器就关闭了与服务器的TCP连接,释放相关资源