从输入URL到页面展示发生了什么?

一个URL从浏览器输入到应用服务处理的完整请求过程涉及多个步骤,以下是一个简要的概述:

  1. URL解析和分析: 用户在浏览器中输入URL(统一资源定位符)。浏览器需要解析这个URL,它包括协议(如http、https)、域名(例如www.example.com)、路径、查询参数等等。

  2. DNS解析: 浏览器需要将域名解析为IP地址,这一过程称为DNS解析。浏览器向本地DNS服务器发送请求,本地DNS服务器可能会查询其缓存,如果找不到,它会向根DNS服务器逐步查询,最终找到对应的IP地址。

  3. 建立TCP连接: 通过解析得到的IP地址,浏览器与目标服务器建立TCP连接。这个过程涉及TCP的三次握手,确保浏览器与服务器之间可以进行数据传输。

  4. 发起HTTP请求: 一旦TCP连接建立,浏览器会向服务器发送一个HTTP请求。这个请求中包含了之前解析得到的路径、查询参数、请求方法(GET、POST等)、Headers(例如User-Agent、Cookie等)等信息。

    :authority:cason.work

    :method:GET

    :path:/api/user/sysInfo

    :scheme:https

    Accept:application/json, text/plain, /

    Accept-Encoding:gzip, deflate, br

    Accept-Language:zh-CN,zh;q=0.9,en;q=0.8,en-US;q=0.7,en-GB;q=0.6

    Cache-Control:no-cache

    Cookie:na me=1691121971;

    Pragma:no-cache

    Referer:https://cason.work/

    Sec-Fetch-Dest:empty

    Sec-Fetch-Mode:cors

    Sec-Fetch-Site:same-origin

    Token:***

    User-Agent:Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/115.0.0.0

  5. 服务器处理请求: 服务器接收到HTTP请求后,会根据请求的内容进行处理。如果请求的是静态资源(例如HTML文件、图片等),服务器会从文件系统中读取资源并返回给浏览器。如果请求需要应用逻辑处理(例如通过某种编程语言生成动态内容),服务器会将请求转发给相应的应用服务。

  6. 应用服务处理: 应用服务接收到请求后,根据请求的内容执行相应的逻辑。这可能包括从数据库中检索数据、处理业务逻辑、生成动态内容等。

  7. 生成HTTP响应: 应用服务处理完请求后,会生成一个HTTP响应。这个响应包括了状态码(例如200表示成功、404表示资源未找到等)、Headers(例如Content-Type、Cache-Control等)以及实际的响应内容。

    Cache-Control:
    no-cache, no-store, max-age=0, must-revalidate
    Content-Type:
    application/json
    Date:
    Thu, 10 Aug 2023 11:47:23 GMT
    Expires:
    0
    Pragma:
    no-cache
    Server:
    nginx
    Vary:
    Access-Control-Request-Headers
    Vary:
    Access-Control-Request-Method
    Vary:
    Origin
    X-Content-Type-Options:
    nosniff
    X-Frame-Options:
    DENY
    X-Xss-Protection:
    1; mode=block
  8. 传输HTTP响应: 服务器将生成的HTTP响应通过之前建立的TCP连接传输回浏览器。

  9. 浏览器接收响应: 浏览器接收到服务器传回的HTTP响应。它会根据响应中的信息进行处理,例如解析HTML内容、渲染页面、执行JavaScript代码等。

  10. 关闭连接: 一旦响应传输完毕,浏览器与服务器之间的TCP连接会被关闭。这一步确保连接资源被释放。

总的来说,这个过程涉及了多个关键步骤,包括URL解析、DNS解析、建立TCP连接、发起HTTP请求、服务器处理、应用服务处理、生成HTTP响应、传输响应、浏览器处理等,最终将用户输入的URL转化为浏览器上可见的网页内容。


从输入URL到页面展示发生了什么?
https://cason.work/2023/08/10/从输入URL到页面展示发生了什么?/
作者
Cason Mo
发布于
2023年8月10日
许可协议