http 从请求到响应的过程中发生了什么
-
DNS域名解析:当用户在浏览器地址栏输入网址时,浏览器首先会尝试从自身的DNS缓存中查找域名的IP地址。如果缓存中没有找到,浏览器会向系统DNS缓存、hosts文件以及本地DNS服务器发起查询请求,最终获取到域名的IP地址。
-
TCP三次握手:浏览器与服务器建立TCP连接,这个过程称为三次握手。服务器监听端口,客户端发送SYN包请求连接,服务器响应SYN+ACK包,客户端再次发送ACK包确认连接建立,完成三次握手后,客户端和服务器进入数据传输状态1。
-
发送HTTP请求:客户端向服务器发送一个HTTP请求,请求包含请求行、请求头部和请求体。请求行包含HTTP方法(如GET、POST)、资源路径和HTTP版本。请求头部包含客户端信息、请求条件等,如Host、User-Agent、Accept等。请求体是可选的,用于POST请求中的数据传输2。
-
服务器处理请求:服务器接收到请求后,解析请求,查找所需资源,并进行处理。服务器会返回一个HTTP响应,响应包括状态行、响应头部和响应体。状态行包含HTTP版本、状态码和状态消息,如200 OK表示请求成功,404 Not Found表示资源未找到2。
-
关闭连接:在HTTP/1.0中,每次连接只处理一个请求然后关闭。HTTP/1.1引入了持久连接,允许一个连接处理多个请求和响应,提高了性能。连接在完成所有请求和响应后可以选择关闭或保持开启状态3。