一、Http学习

一、Http基础

如果想了解http,首先我需要了解Tcp/ip协议。通常网络请求都是在Tcp/ip协议上,http是属于Tcp/ip协议内部的一个子集。

1.1 

        Tcp/IP中最重要的一点就是分层,依次分为应用层、传输层、网络层、数据链路层。分层的好处是每个层级相互独立,方便修改与维护,类似于微服务的设计方式。

    客户端通过TCP/IP通信传输流访问服务器的方式,如下图

    

    每个层级的作用分别是:

         应用层:决定了向用户提供应用服务时通信的活动。Tcp/ip协议族内预存了各类通用的应用服务。比如FTP,DNS。http协议也处于该层

         传输层:对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。Tcp协议便处于该层。

         网络层:网络层用来处理网络上流动的数据包。与对方计算机之间通过多台计算机或者网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。IP协议处于该层

         链路层:用来处理连接网络的硬件部分。包括控制操作系统。路由器。光纤等等物理可见部分。

 

        当作为发送端的客户端在应用层发送一个想看某个web页面的http请求。接着为了方便传输。在经过传输层的时候便会把从应用层接收到的数据进行分割,并在各个报文上标记顺序号和端口号后发送给网络层。在经过网络层的时候,便会增加一个作为通信目的地的地址后转发给链路层。这样一个发送给服务器的http请求变准备完成了。当服务的链路层接受到后也按照上图的顺序依次向上发送。

        

        发送端在层与层之间传输数据时,每经过一层时便会打上所属该层的部首信息。反之接收端在层与层传输数据时,每经过一层会把对应的首部去掉。

 

1.2   IP,TCP,DNS详解

         IP处于网络层负责数据包的传输,保证数据确实传送到对方那里。IP地址指明了节点被分配到的地址,Mac地址是网卡所属的固定地址。IP地址可以和Mac地址进行配对。IP地址可变换,但是Mac地址基本不会更改。

         IP间的通信依赖Mac地址。在网络上通信的双方在同一局域网内的情况很少,通常是经过多台计算机和网路设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的Mac地址来搜素下一个中转目标。在到达通信目标前的中转过程中,那些计算机和路由器等网络设备只能获悉很粗略的传输路线。这种机制成为路由选择,类似快递的送货。

        

 

         TCP位于传输层,提供可靠的字节流服务。当接收到一个Http请求时,TCP会将数据分割成多个报文段的数据包,然后把数据准确可靠地传给对方。为了确保无误地将数据送达到目标处,tcp协议采用了三次握手策略。当TCP协议把数据包发送出去后,不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。若在握手的过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。

            

DNS和Http一样位于应用层的协议。它提供域名到IP地址之间的解析服务。用户通常根据网址去访问对方的计算机,而不是直接通过IP地址访问的。但是让计算机去理解名称就相对困难一些,因为计算机更擅长处理一长串数字。

为了解决上述的问题DNS服务便应运而生。DNS协议通过域名查到IP地址,或从IP地址反查域名的服务。

    

通过以下这张图可以了解在ip,tcp,DNS服务在使用http协议的通信过程中各自发挥了哪些作用。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值