请求响应流程

Posted ericzlin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请求响应流程相关的知识,希望对你有一定的参考价值。

图示:

技术分享图片技术分享图片

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

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

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

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

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

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

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

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

技术分享图片

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

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

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

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

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

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

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

技术分享图片

 

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

技术分享图片

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

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

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

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

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

以上是关于请求响应流程的主要内容,如果未能解决你的问题,请参考以下文章

HttpServlet容器响应Web客户请求流程?

4 请求-响应流程

Flask 中一次请求到响应的流程

请求响应流程

#yyds干货盘点# SAP UI5 batch 请求的响应解析流程分析

REdis命令处理流程处理分析