• 请求响应流程


    图示:

    第一步:浏览器的处理(用户的操作系统)

    ①用户在浏览器中输入URL地址

    ②浏览器解析用户输入的URL地址

    ③浏览器会先检查本地缓存中有没有这个域名

    ④浏览器发起一个DNS系统调用

    • 检查操作系统缓存有没有这个域名
    • 找系统的hosts文件中有没有这个域名
    • 如果都没找到,会对DNS服务器发起一个系统调用(最终DNS服务器返回IP)

    ⑤浏览器会通过本地的随机端口建立一个与服务器指定端口之间的连接通道(三次握手)

    ⑥浏览器会将客户端的一些信息打上一个"包"(请求报文)

    ⑦将这个"包"通过这个连接通道发送到服务端

    第二步:服务端(websever)的处理(以Apache为例)

    ①打开客户端提交过来的"包",拿到"包"里面的请求路径

    ②根据请求的路径对应文件的扩展名找到文件的MIME Type

    ③判断文件类型是否为静态文件

    ④如果是静态文件,则直接读取这个文件的内容

    ⑤如果是动态文件,则交给一些功能模块(比如加载的PHP,相当于外包)处理

    ⑥服务端会按要求发给客户端的数据打上一个"包"(响应报文)

    ⑦将这个"包"在通过之前的连接通道发回给客户端

    第三步:浏览器再处理(用户的操作系统)

    ⑧打开服务端返回的"包",找到content-type

    ⑨根据content-type决定如何处理响应的内容

    ⑩如果是html则渲染到页面上......

  • 相关阅读:
    avalon如何用年月日的方式输出..
    做一个倒计时的功能,天,时,分 /时,分,秒
    avalon用background-image不起作用,怎么来选取前几个的图片进行渲染
    获取地址栏的参数的两种方法?
    mac屏幕录制
    数据可视化
    vscode 插件
    git 命令 总结
    jest
    react admin
  • 原文地址:https://www.cnblogs.com/EricZLin/p/9189531.html
Copyright © 2020-2023  润新知