图解HTTP:从输入网址到呈现

2019-01-28  本文已影响0人  这里王工头

欢迎访问我的博客https://qqqww.com/,祝码农同胞们早日走上人生巅峰,迎娶白富美~~~

那首先上图,看下图参照下面的说明

HTTP

说明

下面以按具体流程讲解:

  1. 当用户需要请求github.com的时候,首先要打开浏览器,输入URL地址,即输入github.com
  2. 浏览器发起 DNS 调用去解析URL中的域名字段:
    1. 先检查本地缓存中有没有这个域名
    2. 如果有,浏览器将接收到的URL中抽取出域名字段,就是访问的主机名,比如https://github.com,并将这个主机名传送给DNS应用的客户端
    3. 如果没有查找系统hosts文件有没有这个域名,如果有,解析出IP
    4. 如果没有,DNS客户机端向DNS服务器端发送一份查询报文,报文中包含着要访问的主机名字段
    5. DNS客户机最终会收到一份回答报文,其中包含有该主机名对应的IP地址
  3. 一旦该浏览器收到来自DNSIP地址,就可以向该IP地址定位的HTTP服务器发起TCP连接
    1. 浏览器先通过本地随机端口去建立一个通向服务端的连接通道,此通道遵循HTTP协议
    2. 浏览器将客户端信息打“包”
    3. 将“包”通过连接通道发送到服务端
  4. 服务端接收并打开这个“包”,读取到里面的请求路径
  5. 根据文件请求路径找到MIME-TYPE,即获得了消息内容类型
  6. 判断这个文件是否为静态文件,如果是静态文件,自己处理,如果自己不能处理,交给自己服务中的其他“小弟们”处理
  7. 如果是静态文件,则读取静态文件内容,将内容返回给客户端
  8. 如果不是静态文件,则发送给“小弟”处理,这里假设PHP能处理,就按照PHP的语法规则去处理并返回给服务端
  9. 服务端将处理好的数据以及其他一些内容,打“包”并通过之前建立的通道发送给客户端
  10. 客户端接收并打开这个服务端发送回来的“包”,找到其中的Content-Type
  11. 根据Content-Type指定的编码格式(例如html,css,javascript等),决定怎么去处理这些文件或者渲染网页
  12. 假设是HTML,则直接渲染到网页结构上
上一篇下一篇

猜你喜欢

热点阅读