浏览器输入url一直到页面显示出来,经历哪些些过程呢,又是面试常客
主要分为了6个步骤
- DNS解析
- TCP连接
- HTTP请求
- 服务器处理请求并返回HTTP报文
- 浏览器渲染
- 连接结束
一:DNS解析
说白了就是把我们的域名转成ip地址过程,具体如何解析可以查看下图,一共分成8步,非常清楚
二:TCP连接
TCP 提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的,面向连接的传输服务(TCP 的可靠体现在 TCP 在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源),这难以避免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。TCP 一般用于文件传输、发送和接收邮件、远程登录等场景
三:HTTP请求
这个也很好理解,就是我们开发写的接口,HTTP请求的过程就是构建HTTP报文按照TCP协议发送到指定服务的端口,HTTP报文主要有三部分组成,请求行,请求正文,请求报头
请求行
代码语言:javascript复制Method Request-URL HTTP-Version CRLF
eg: GET index.html HTTP/1.1
请求报头
常见的请求报头有: Accept, Accept-Charset, Accept-Encoding, Accept-Language, Content-Type, Authorization, Cookie, User-Agent等
请求正文
这个可以这样理解,就是我们请求接口带入的入参
四:服务器处理请求并返回HTTP报文
当我们的服务端口接收到请求的时候,我们的web服务器会对HTTP协议进行解析,然后并按照报文格式进一步封装成HTTP Request对象,服务进行处理完之后,返回HTTP响应报文,他也是由三部分组成,状态码,响应报头,响应报文
五:浏览器渲染
浏览器对返回的数据进行渲染,主要就是对HTML,CSS,JS进行解析渲染
以上就是一个浏览器输入url基本的整个过程,这里面其实还有许多的知识点,比如
- 1.三次握手,四次挥手
- 2.TCP和UDP区别
- 3.HTTPS和HTTP的区别
- 4.HTTPS工作原理