在浏览器输入url回车之后发生了什么
1.URL中的域名解析为对应的IP地址
(这一过程就叫dns解析)【《DNS》那一篇文章有举例过】
2.知道IP地址后,在正式发送数据之前,还是要建立tcp连接
(在发送数据之前,在客户端和服务端之间建立通道,在这个通道里发送数据)
tcp三次握手,客户端发送SYN数据包来表示请求连接,服务器响应SYN和ACK的数据包来表示同意建立连接,客户端再发送ACK数据包来表示成功连接
【《tcp三次握手》那一篇文章有详细讲过,这里略略带过】
3.进行TLS握手
【《HTTPS如何保障网络安全》那一篇文章有TLS握手过程详解】
4.当和服务器建立起连接后,浏览器是会发送http请求报文给服务器
HTTP请求报文由请求行、请求头、请求正文组成
-
请求行:请求方法,请求地址和HTTP协议版本组成
-
请求头:一些关于浏览器的信息,由键/值对组成,一行一对,直到遇到空行就表示下面没有请求头部了
-
请求正文:告诉对面要什么形式的什么数据
5.当服务器收到HTTP请求报文以后,服务器会处理请求报文,生成HTTP响应报文通过TLS通道加密发送回浏览器
HTTP响应报文由状态行、响应头、响应数据组成
-
状态行:协议版本、状态码(200-请求成功、404-资源不存在等...)和状态描述
-
响应头: 由键/值对组成,一行一对,直到遇到空行就表示下面没有响应头部了
-
响应正文:服务器返回需要的数据(如HTML、JSON、图片等)
6.浏览器在接受到服务器的响应以后,页面就会开始进行渲染了
浏览器接收到加密的HTTP响应,解密后解析HTML、CSS、JavaScript等资源,并渲染页面。