博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图解HTTP:从输入网址到呈现
阅读量:2072 次
发布时间:2019-04-29

本文共 835 字,大约阅读时间需要 2 分钟。

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

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

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

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,则直接渲染到网页结构上

转载地址:http://qxtmf.baihongyu.com/

你可能感兴趣的文章
使用Maven构建的简单的单模块SSM项目
查看>>
Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
查看>>
程序员--学习之路--技巧
查看>>
解决问题之 MySQL慢查询日志设置
查看>>
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>
PHPstudy中遇到的坑No input file specified,以及传到linux环境下遇到的坑,模板文件不存在
查看>>
TP5.1事务操作和TP5事务回滚操作多表
查看>>
composer install或composer update 或 composer require phpoffice/phpexcel 失败解决办法
查看>>
TP5.1项目从windows的Apache服务迁移到linux的Nginx服务需要注意几点。
查看>>
win10安装软件 打开时报错 找不到 msvcp120.dll
查看>>
PHPunit+Xdebug代码覆盖率以及遇到的问题汇总
查看>>
PHPUnit安装及使用
查看>>
PHP项目用xhprof性能分析(安装及应用实例)
查看>>