Http请求过程

一次完整的Http请求的过程:

1、对网址进行DNS域名解析,得到对应的IP地址

2、根据这个IP地址找到对应的主机,发起TCP三次握手

3、建立TCP连接后发起Http请求

4、服务器响应Http请求,并返回响应结果给客户端

5、客户端解析响应结果,(浏览器一半为HTML文件,移动设备一般是json数据)

6、客户端进行渲染

(1)DNS域名解析采用的是递归查询的方式,过程是,先去找DNS缓存->缓存找不到就去找根域名服务器->根域名又会去找下一级,这样递归查找之后,找到了,给我们的客户端

(2)为什么HTTP协议要基于TCP来实现?  TCP是一个端到端的可靠的面相连接的协议,HTTP基于传输层TCP协议不用担心数据传输的各种问题(当发生错误时,会重传)

(3)DNS域名解析,首先会搜索自身的dns缓存,如果没有就搜索系统自身的dns缓存,如果没有就去host文件找缓存,如果还没有就去域名服务器去找,dns解析优化:dns缓存、dns负载均衡

(4)TCP连接(三次握手)

(5)建立连接后发起Http请求,HTTP请求报文包含:请求行、请求头、请求正文

        请求行:请求方式、Http协议版本号、资源名称

        请求头:用于描述客户端的一些配置信息,以及请求哪台主机

                     例如:keep-alive:true 代表本次http请求后不需要关闭tcp连接,这样下次Http请求就可以使用相同的TCP通道,节省tcp连接时间。

     请求正文:当使用POST, PUT等方法时,通常需要客户端向服务器传递数据。这些数据就储存在请求正文中(GET方式是保存在url地址后面,不会放到这里)

(6)服务器接到HTTP请求,响应,HTTP响应也包括三部分:响应行、响应头、响应体

         响应行:状态码,用于表示服务器对请求的处理结果

         响应头:描述服务器的基本信息

         响应体:服务器返回给客户端的基本信息

   (7)浏览器解析HTML代码,并请求HTML中的资源

          浏览器拿到HTML文件后,就开始去解析其中的HTML代码,遇到静态资源回去下载(会使用多线程),这时就用到了keep-alive,建立一次http连接,可以请求多个资源,因为浏览器是多线程请求资源,所以,显示顺序不一定。

(8)浏览器对页面进行渲染,

      浏览器边解析,边渲染

总结:一次完整的HTTP请求主要是以下几步:

        域名解析----》发起TCP的三次握手----》建立TCP连接发起HTTP请求-------》服务器响应HTTP请求,客户端得到响应---》客户端解析响应-------》客户端进行渲染呈现给用户。

      

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值