【计算机网络】Web及网络底子——网页是怎么打开的(个人条记) ...

打印 上一主题 下一主题

主题 455|帖子 455|积分 1365

学习日期:2024.6.17

内容摘要:简述HTTP通信过程和原理

内容总结自人民邮电出书社《图解HTTP》

利用HTTP协议访问Web

我们知道,只需要在网页浏览器的所在栏中输入网址,按下回车,网页就出现了,但这一过程是怎么实现的呢?
显然Web页面不是凭空表现的,通过我们指定的URL(网址),Web浏览器从服务器端获取笔墨图片等资源信息,然后表现出页面,Web浏览器可称为客户端(client)。
Web利用一种叫HTTP(HyperText Transfer Protocol,超文本传输协议)的协议作为规范,完成客户端到服务器端的通信。
(协议:计算机和网络装备互相通信的规则)

网络底子TCP/IP

通常利用的网络是在TCP/IP协议族的底子上运作的,HTTP属于它的一个子集
TCP/IP协议是分层的,按层次分为应用层、传输层、网络层和数据链路层。
层次化的好处在于,如果哪个层次需要更新,只需要替换对应的部分即可。
应用层:好比服务生,直接向用户提供应用服务时的通信活动。好比FTP(File Transfer Protocol,文件传输协议)和DNS(Domain Name System,域名系统)就属于此类,HTTP也处于这层。
传输层:提供处于网络毗连中两台计算机之间的数据传输。传输层有两个性质差别的协议,分别是TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol,用户数据报协议)
网络层:网络层好比导航系统,规定了该通过怎样的路径(即传输路线)到达对方的计算机,并把数据包传给对方。IP(Internet Protocol,网际协议)就位于这层。注意区分IP和IP所在,IP是一种协议的名称,IP所在是节点被分配到的所在。
链路层:处理毗连网络的硬件系统。包罗控制硬件和操纵系统的驱动、NIC(Network Interface Card,网络适配器,俗称网卡)、光纤之类物理可见的部分。
利用TCP/IP协议通信时,会按分层顺序通信,发送端自应用层向下走,即应用层->传输层->网络层->链路层,吸收端则反之。

一次HTTP哀求的过程——寄快递

以HTTP为例,类比生活中寄快递。
首先客户端在应用层(HTTP协议)发出哀求,就是联系快递员,说“我要寄快递啦”。
然后为了传输方便,传输层(TCP协议) 把从应用层收到的数据(HTTP哀求报文)分割,并且在各个报文上打上标记序号及端口,再传给网络层。好比快递员把你要寄出的奇形怪状的东西用纸箱子包好,方便运输。
在网络层(IP协议),增加作为通信目标地的MAC所在后转发给链路层。前面说了,网络层好比导航,按所在找到目标地之后再交给链路层(把你的快递送过去的运输大卡车)
吸收端的服务器在链路层收到数据,再按序向上发送,一直到应用层,直到吸收端传输到应用层时,才算真正吸收到客户端发过来的HTTP哀求。
  发送端在层与层之间传输数据时,每颠末一层都要打上一个该层的首部信息,同样,吸收端每颠末一层就会消去一个首部信息,这种把数据信息包装起来的做法叫封装。


IP、TCP和DNS

负责传输的IP协议

Internet Protocol这个名字可谓威武霸气,事实也是如此,几乎所有利用网络的系统都会利用它
IP协议的重要作用是把各种数据包传给对方,要包管这一点, 就需要IP所在和MAC所在(Media Access Control Address)
IP所在是节点被分配的所在,MAC所在是网卡所属的固定所在,IP所在可变,MAC所在几乎不会更改。
显然,现实中通信的两边很少处于同一个局域网下,这就需要通信的两边中转,中转时会利用下一台中转装备的MAC所在来搜索下一个中转目标,这时就需要ARP协议(Address Resolution Protocol,所在剖析协议),它可以根据通信方的IP所在反查出对方的MAC所在。

确保可靠性的TCP协议(重点)

TCP协议采取著名的“三次握手,四次挥手”来包管可靠性。
首先要知道TCP的几个标志,SYN(synchronize,v.同步,时间上同等)ACK(acknowledgement,n.确认)FIN(finish,竣事)
三次握手

我们想象客户端和服务器端两个小人在互相发邮件
客户端:标有SYN的数据包发给你了,收到没有?哀求建立毗连!(第一次握手)
服务器端:收到收到,可以建立毗连!(发送含有SYN和ACK的数据包)(第二次握手)
客户端:明白!同步开始!(发送含有ACK的数据包)(第三次握手)
为什么不是两次握手:第二次握手后,服务器端知道对方的发送能力没有问题,但不知道本身的发送能力和对方的吸收能力有没有问题,如果只握手两次,对方却没有吸收到服务器端的复兴, 就会导致服务器待机,浪费资源
为什么不是114514次:三次握手比两次更可靠,但也不是完全可靠,而追加更多次握手也不能使毗连更可靠了(两边的发送和吸收能力都已经得到确认了),因此选择了三次握手。
四次挥手

照旧那两个小人
客户端:标有FIN的数据包发给你了,收到没有?哀求毗连断开!(第一次挥手)
服务器端:我收到了,我先准备一下(发送含有ACK的数据包)(第二次挥手)
服务器端:我准备好了,你可以断开了(发送含有FIN的数据包)(第三次挥手)
客户端:明白!毗连断开!(发送含有ACK的数据包)(第四次挥手)

为什么挥手要多一次:
因为当服务器端收到Client端的SYN毗连哀求报文后,可以直接发送SYN+ACK报文。ACK报文是用来应答的,SYN报文是用来同步的。但是关闭毗连时,当服务器端收到FIN报文时,很可能并不会立即关闭SOCKET(活还没干完),以是只能先复兴一个ACK报文,告诉客户端,“你发的FIN报文我收到了”。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送FIN和ACK,故需要四次挥手。

负责域名剖析的DNS服务

DNS(Domain Name System,域名系统)服务位于应用层,提供域名到IP所在之间的剖析服务。
计算机既可以被赋予IP所在、主机名和域名,但我们习惯用域名来访问对方,而不是IP所在
(想想,www.baidu.com和182.61.200.6哪个好记)
把182.61.200.6粘贴进所在栏里,我们一样能打开百度,但这样显然是反人类的。然而,计算机却更善于处理一串数字,而不是字母数字组合的网址
DNS协议就是这样一个翻译官,其提供通过域名查找IP所在,或者通过IP所在反查找域名的服务。

各种协议与HTTP协议的关系





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连密封材料

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表