《趣谈网络协议》笔记——访问网址流程(以及HTTP协议简单介绍)

协议三要素:语法、语义、顺序。
先看一个浏览器访问网址的过程:

1. 在浏览器中输入http://www.kaola.com,这是一个URL,不知道其ip地址,因此通过DNS协议去寻找目的服务器的ip地址。

寻找过程:

  1. 首先先去访问本地域名服务器(本地DNS)。(如果是通过DHCP服务器配置,那么本地DNS由你的网络服务商自动分配,可能在运营商的某个机房里)。
  2. 本地DNS服务器收到请求。如果在本地缓存内查到对应网址的ip地址,那么直接返回需要的ip地址;如果未查到,则访问根域名服务器。(根服务器是最高层次的,它不用于解析域名,但是可以为寻找到对应的服务器指明道路)。
    图片来源趣谈网络协议18讲
  3. 根DNS服务器收到来自本地DNS服务器的请求,发现后缀名是.com,告诉本地DNS去寻找.com顶级域的DNS服务器。
  4. 本地域名服务器转向问顶级域名服务器(顶级域名服务器负责管理二级域名),顶级域名服务器提供一个更加清晰的寻找方向(kaola.com),告诉本地域名服务器去问权威域名服务器。
  5. 本地DNS转向问权威DNS服务器,权威DNS服务器查询到对应的ip地址后返回给本地DNS,本地DNS再将ip地址返回给客户端。
    DNS的解析过程

2、知道ip地址后,打包请求,对于浏览器请求,会使用HTTP或HTTPS协议,内部注明请求的具体内容。(因为HTTP是基于TCP协议的,因此发送HTTP请求之前会先进行三次握手建立TCP连接)

HTTP请求的构建:
目前使用的HTTP协议大部分是hiHTTP1.1,而且默认是开启keep-alive,这样建立的TCP链接可以在多次请求中复用。
请求的格式如下图
图片来源趣谈网络协议
同样,也可以通过网页实际查看请求的标头
在这里插入图片描述
在这里插入图片描述
对于访问网页来讲,最常用的方法就是GET,顾名思义GET就是去服务器获取一些资源。访问网页一般都是获取一个页面。
当然还有其他一些方法:POST,DELETE等。POST是主动告诉服务器一些信息,比如在一些支付场景时候,告诉服务器 ”我是谁,我要支付多少,我要买啥“。 同样DELETE顾名思义是用来删除资源的。
知道几个常用的首部字段名accept-charset表示客户端可以接收的字符集,防止出现其他的字符集而导致乱码。
Content-Type:表示正文的格式。
Cache-control:是来控制缓存的。当客户端发送请求中出现max-age指令时,如果缓存层中缓存时间数值比指定的小,那么可以接收缓存的资源;如果max-age=0时,那么缓存层通常把资源转发给应用集群。

HTTP返回的构建:
在这里插入图片描述
版本同样是基于HTTP1.1的。状态码会反应请求的结果:200意味着成功,404表示服务器无法响应这个请求。
通过网页实际查看响应的标头
在这里插入图片描述
同样对于一些首部字段:Retry-After:表示客户端应该在多长时间以后再次尝试。
Content-Type:表示返回的是什么类型HTML还是JSON类型。

上面介绍的HTTP 1.1 在应用层以纯文本的形式进行通信。每次通信都要带完整的 HTTP 的头,而且不考虑 pipeline 模式的话,每次的过程总是像上面描述的那样一去一回。这样在实时性、并发性上都存在问题
因此引入了HTTP 2.0版本。优点:HTTP 2.0 通过头压缩、分帧、二进制编码、多路复用等技术提升性能。具体可以参考:

3、到了传输层,TCP会将上层的请求(面向连接的stream二进制流)变成一个报文段发送给服务器,在发送每个报文段的时候,都需要对方回应一个ACK,来保证报文可靠的到达对方,如果没有回应,TCP这一层会重新传输直到到达。

具体过程可以参考这个:UDP和TCP

TCP层发送每一个报文的时候,都需要加上自己的地址(即源地址)和它想要去的地方(即目标地址),将这两个信息放到IP头里面,交给IP层进行传输。

4、IP层需要检查目的地址和自己的地址是否在同一个网段
(1)如果是在同一网段:直接采用ARP协议通过目的IP地址获取对应的目的MAC地址,然后将获得的目的MAC地址和源地址放在MAC头发送出去。
(2)如果不在同一网段:通过ARP协议获取网关的MAC地址,发送到网关后,通过各种路由协议找到下一跳,获取下一跳的MAC地址,将包发给下一跳。一直到目标局域网,最后一跳的路由器发现目的地址属于自己的某个局域网,于是在这个局域网采用ARP协议,获取目的MAC地址,将包发送出去。

在这个过程中的几个问题:
:如何知道目的地址和自己的地址在同一网段?
:通过子网掩码,或者CIDR无类型域间路由

:直接通过目的IP地址就能找到目的端了,为什么还要通过本地的MAC地址呢?
:IP地址是人为分配的,可变的,可以有效划分不同的网段,有效避免了MAC广播寻址带来的广播风暴。MAC地址是硬件厂商出厂时的唯一标识,可以只在局域网内通过ARP寻址精确的找到接受者。

目标的机器发现MAC地址符合,就将包收起来;发现IP地址符合,根据IP头中协议项,知道自己上一层是TCP协议,于是解析TCP的头,里面有序列号,需要看一看这个序列包是不是我要的,如果是就放入缓存中然后返回一个ACK,如果不是就丢弃。

5、TCP头里面还有端口号HTTP的服务器正在监听这个端口号。于是,目标机器自然知道是HTTP服务器这个进程想要这个包,于是将包发给HTTP服务器。HTTP服务器的进程看到,原来这个请求是要访问一个网页,于是就把这个网页发给客户端。

6、服务器端构建HTTP响应报文,然后加上TCP头后会交给IP层,然后把刚才的发送过程反向走一遍。虽然两次不一定走相同的路径,但是逻辑过程是一样的,一直到达客户端。

### 回答1: 网络协议是计算机网络中进行数据传输和通信的规则和约定。PDF(Portable Document Format)是一种由Adobe开发的文件格式,用于以可靠的方式呈现和交换电子文档。 在谈论网络协议的PDF下载时,我们可以探讨以下趣闻: 首先,网络协议的PDF下载可以帮助我们更好地理解和学习网络协议网络协议本身是一种抽象的概念,有时候很难通过文字或图片来完全理解。但是,通过以PDF格式提供的文档,我们可以更直观地看到网络协议的结构、流程和细节,使得学习变得更加容易和有趣。 其次,网络协议的PDF下载还能帮助我们及时了解和跟进最新的协议标准。网络协议是一门不断发展的学科,新的协议版本和标准经常被提出和更新。通过及时下载最新的协议文档,我们可以了解最新的协议规范和改进,从而更好地应用它们于实际网络环境中。 此外,网络协议的PDF下载也给了我们方便地和他人共享学习资源的机会。通过将网络协议的文档以PDF格式发布在互联网上,任何人都能够自由下载和阅读,促进了知识的传播和共享。在学术和研究领域,这种方式也为学者们提供了方便的途径来分享最新的网络协议研究成果。 总之,网络协议的PDF下载不仅能够促进我们更好地理解和学习网络协议,还能帮助我们及时了解最新的协议标准,并且方便地与他人共享学习资源。无论是对于专业人员还是对于普通用户,网络协议的PDF下载都具有重要的意义和趣味性。 ### 回答2: 网络协议是计算机网络中的基础,它定义了数据在网络中传输的规则和方式。网络协议可以确保数据的可靠传输,有效地管理网络资源,并实现各种网络应用功能。 趣谈网络协议是一本介绍网络协议的有趣读物,可以以轻松、幽默的方式解释复杂的网络协议概念和原理。这本书通常以PDF格式提供下载,方便读者在任何设备上阅读。 下载这本书的PDF版本,可以享受以下好处: 首先,PDF格式具有跨平台和跨设备的特点。不论您使用的是电脑、平板还是手机,只要安装了合适的PDF阅读器软件,就可以轻松打开并阅读这本书。 其次,下载PDF可以实现离线阅读。无论您身处何地,只要下载好了PDF文件,即便没有网络连接,也可以随时随地阅读网络协议趣谈故事。 此外,PDF格式使得阅读更加方便。您可以在PDF阅读器中进行文字搜索、加注释、划重点,甚至可以调整字号的大小,以适应不同的阅读环境。 最后,通过下载PDF,您还可以将这本书保存到自己的电脑或移动设备上,以备日后参考。您可以在需要的时候,随时翻阅这本书,方便复习和查找相关内容。 总之,趣谈网络协议PDF的下载为我们提供了方便、快捷、随时随地的阅读体验。无论是想了解网络协议,还是希望在计算机网络领域深入学习,这本书都会是一本有趣而又实用的读物。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值