一个页面从输入URL到页面加载显示完成,这个过程中都发生了什么?
一个页面从输入URL到页面加载显示完成,这个过程中都发生了什么?
这个过程可以分为四个步骤:
- 当发送一个URL请求时,不管这个URL是web页面的URL还是web页面的每个资源的URL,浏览器都会开启一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询,这样就可以使得浏览器获得请求对应的IP地址了。
- 浏览器通过与远程web服务器TCP三次握手协商来建立一个TCP/IP链接。三个握手包含一个同步报文,一个同步-应答报文和一个应答报文,这三个报文在浏览器和服务器之间进行传递,该握手首先由客户端尝试建立起通信,而后服务器应答并接受客户端的请求,最后由由客户端发出该请求已经被接受的报文。
- 一旦TCP/IP链接建立,浏览器会通过该链接向远程服务器发送HTTP的GET请求。远程服务器找到资源并使用HTTP响应返回该资源,值为200的HTTP状态码表示一个正确的响应。
4.此时,web服务器提供资源服务,客户端开始下载资源。
简单来说,浏览器会解析HTML生成DOM tree,其次会根据CSS生成CSS rule tree,而javascript又可以根据DOM api操作DOM
在这里再归纳下http状态吗有哪些?它们分别代表什么意思?
- 100-199用于指定客户端应该响应的某些动作
- 200-299用于表示请求成功
- 300-399用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息
- 400-499用于指定客户端的错误 400语义有误,当前请求无法被服务器所理解。401当前请求需要用户验证。403服务器已经理解请求,但是拒绝执行它。
- 500-599用于支持服务器错误。 503-服务器不可使用。