重温HTTP

为了理解HTTP,我们有必要事先了解下TCP/IP协议族。我们通常使用的网络是在TCP/IP的基础上运作的,而HTTP是属于他的一个子集。

TCP/IP

计算机与网络上的设备要互相通信,双方就要基于相同的方法。如何探测到通信目标、由哪一边先发起通信,使用什么语言进行通信,怎样结束通信等等规则都要事先确定好。而这种规则就是协议protocol
互联网相关联的协议集合起来总称为TCP/IP。

TCP/IP的分层管理

TCP/IP协议族按层次分别分为4层:应用层;传输层;网络层;数据链路层。
分层的好处是有一处出现问题就换掉这一层就好,不用整体全换掉。

应用层

应用层决定了向用户提供应用服务时通信的活动。
这层有FTP(File Transfer Protocol,文件传输协议)、DNS(Domain Name System)、HTTP就属于这层。

传输层

传输层对上层应用层提供网络连接时,两台计算机之间的数据传输。
这层有TCP(transmission control protocol,传输控制协议)、UDP(user data protocol,用户数据报协议)。

网络层

网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。 该层规定了通过怎样的路径(传输路线)到达对方计算机,并把数据包传送给对方。IP协议。

数据链路层

用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),以及光纤等。
硬件上范畴均在链路层部分。


IP协议和IP地址不要搞混,
IP协议的作用是把数据包传送给对方。而要保证确实传到那里需要满足各种条件。其中最重要的是IP地址和MAC地址。
IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址和MAC地址进行配对。IP地址可换,但MAC地址基本上不会变化。

使用ARP协议凭借MAC地址进行通信

IP间的通信依赖MAC地址。在网络上,通信的双方在同一个局域网内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标。这时会采用ARP协议(Address Resolution Protocol)。ARP是一种解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。


确保可靠的TCP协议

TCP位于传输层,提供可靠的字节流服务。
所谓的字节流服务(Byte Stream Service)是指,为了方便传输将大块的数据分割成以报文段(segment)为单位的数据包进行管理。
为了确保数据能准确的到达目标,TCP采用了三次握手策略(three-way handshaking)。握手过程中使用了TCP的标志(flag)–SYN(synchronize同步)和ACK(acknowledgement确认)。
1. 发送端首先发送一个带SYN标志的数据包给对方
2. 接收方收到后回传一个带有SYN/ACK标志的数据包以示传达确认信息
3. 发送端再回传一个带ACK标志的数据包,代表握手结束


一个浏览器访问的例子来反应各种协议与HTTP协议的关系
  1. 在浏览器输入一个URL
  2. DNS协议通过域名解析出对应的IP地址
  3. HTTP协议生成针对目标WEB服务器的HTTP请求报文
  4. TCP协议为了方便通信将HTTP请求报文分割成多个报文段,报每个报文段可靠地传给对方
  5. IP协议ARP协议搜索对方的MAC地址,一边搜一边中转
  6. 同样web服务器那边接受的报文段通过TCP协议按照序号以原来的顺序重组请求报文
  7. 服务器收到HTTP报文请求,通过HTTP协议对请求处理,找到用户要找的页面
  8. 服务器再以同样的流程传送到用户计算机
  9. 用户计算机接受到HTML文件,浏览器解析HTML文件,渲染呈现给用户

还可以从层上讲:
1. 首先作为发送端的客户端在应用层(HTTP协议)发出一个想看某个web页面的HTTP请求
2. 为了传输方便,在传输层(TCP协议)把从应用层收到的HTTP请求报文进行分割,并在各个报文段上打上标记序号及端口号后转发给网络层
3. 在网络层(IP协议)增加作为通信目的地的MAC地址转发给链路层
接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值