• 从输入url到网页呈现的过程


    1、域名解析

    当我们在浏览器中输入一个URL,互联网上每一台计算机的唯一标识是它的IP地址。因此我们输入的网址首先需要先解析为IP地址。这一过程叫做DNS解析

    DNS解析是一个递归查询的过程。

    例如,我们需要解析www.baidu.com,会经历以下步骤

    在本地域名服务器中查询IP地址,未找到域名

    本地域名服务器会向根域名服务器发送请求,未找到域名

    本地域名服务器向.com顶级域名服务器发送请求,未找到域名

    本地域名服务器向.baidu.com域名服务器发送请求,找到该域名,将对应的IP返回给本地域名服务器

    2、TCP连接

    HTTP协议是使用TCP协议作为其传输协议的,在拿到服务器的IP地址后,浏览器客户端会与服务器建立TCP连接。该过程包括三次握手:

    第一次握手:建立连接时,客户端向服务器端请求报文

    第二次握手:服务器收到请求报文后,如同意连接,则想客户端发送确认报文

    第三次握手:客户端收到服务器的确认后,再次向服务器给出确认报文,完成连接

    三次握手主要是为了防止已经失效的请求报文字段发送给服务器,浪费资源

    3、浏览器发送HTTP请求

    浏览器构建http请求报文,并通过TCP协议传送到服务器的指定端口。http请求报文一共包括三个部分:

    请求行:指定http请求的方法、url、http协议版本等

    请求头:描述浏览器的相关信息,语言,编码等

    请求正文:当发生POST、PUT等请求时候,通常需要向服务器传递数据,这些数据就存储在请求正文中

    4、服务器处理HTTP请求

    服务器处理HTTP请求,并返回响应报文。响应报文包括三个部分

    状态码:http服务常用的状态码极其含义如下

    1**:服务器已经接收到请求,客户可继续发送请求

    2**:请求成功。200请求已经成功,请求所希望的响应头或数据体将随此响应返回。

    3**:重定向。303对应当前请求的响应可以在另一个URL上被找到。而且客户端应当采用GET的方式访问那个资源

    4**:客户端错误。404:请求的网页不存才

    5**:服务器错误。503服务器超时

    响应头:包含了响应的相关信息,如日期等

    响应正文:服务器返回给浏览器的文本信息,通过的html、js、css、图片等就包含在这一部分里面。

    5、浏览器页面渲染

    浏览器接收到HTTP服务器发送古来的响应报文,并开始解析html文档,渲染页面。

    具体的渲染过程:构建DOM树、构建渲染树、定位页面元素、绘制页面元素等

    6、断开TCP连接

    客户端与服务器四次挥手,断开TCP连接

    第一次挥手:客户端想分手,发送消息给服务器

    第二次挥手:服务器通知客户端已经接收到分手请求,但还没有做好分手准备

    第三次挥手:服务已经做好分手准备,通知客户端

    第四次挥手:客户端发送消息给服务器,确定分手,服务器关闭连接

  • 相关阅读:
    python os.path.dirname()
    python os.path.basename()方法
    python mmap对象
    python 读取二进制数据到可变缓冲区中
    sklearn常见分类器的效果比较
    用matplotlib获取雅虎股票数据并作图
    使用 lxml 中的 xpath 高效提取文本与标签属性值
    如何用 Python 爬取需要登录的网站
    python 线程及线程池
    使用Python代码处理Excel
  • 原文地址:https://www.cnblogs.com/ommph/p/11428748.html
Copyright © 2020-2023  润新知