2021-08-08

输入一个网址发生的事情

  1. 在浏览器中输入url
    用户输入url,例如http://www.baidu.com。其中http为协议,www.baidu.com为网络地址,及指出需要的资源在那台计算机上。一般网络地址可以为域名或IP地址,此处为域名。使用域名是为了方便记忆,但是为了让计算机理解这个地址还需要把它解析为IP地址。

2.应用层DNS解析域名

首先搜索浏览器自身的DNS缓存,如果存在,则域名解析到此完成。
如果浏览器自身的缓存里面没有找到对应的条目,那么会尝试读取操作系统的hosts文件看是否存在对应的映射关系,如果存在,则域名解析到此完成。
如果本地hosts文件不存在映射关系,则查找本地DNS服务器(ISP服务器,或者自己手动设置的DNS服务器),如果存在,域名到此解析完成。
如果本地DNS服务器还没找到的话,它就会向根服务器发出请求,进行递归查询.

3.应用层客户端发送HTTP请求
HTTP请求包括请求报头和请求主体两个部分,其中请求报头包含了至关重要的信息,包括请求的方法(GET / POST)、目标url、遵循的协议(http / https / ftp…),返回的信息是否需要缓存,以及客户端是否发送cookie等。

4.传输层TCP传输报文
位于传输层的TCP协议为传输报文提供可靠的字节流服务。它为了方便传输,将大块的数据分割成以报文段为单位的数据包进行管理,并为它们编号,方便服务器接收时能准确地还原报文信息。TCP协议通过“三次握手”等方法保证传输的安全可靠。

“三次握手”的过程是,发送端先发送一个带有SYN(synchronize)标志的数据包给接收端,在一定的延迟时间内等待接收的回复。接收端收到数据包后,传回一个带有SYN/ACK标志的数据包以示传达确认信息。接收方收到后再发送一个带有ACK标志的数据包给接收端以示握手成功。在这个过程中,如果发送端在规定延迟时间内没有收到回复则默认接收方没有收到请求,而再次发送,直到收到回复为止。

TCP

5.网络层IP协议查询MAC地址
IP协议的作用是把TCP分割好的各种数据包传送给接收方。而要保证确实能传到接收方还需要接收方的MAC地址,也就是物理地址。IP地址和MAC地址是一一对应的关系,一个网络设备的IP地址可以更换,但是MAC地址一般是固定不变的。ARP协议可以将IP地址解析成对应的MAC地址。当通信的双方不在同一个局域网时,需要多次中转才能到达最终的目标,在中转的过程中需要通过下一个中转站的MAC地址来搜索下一个中转目标。

6.数据到达数据链路层
在找到对方的MAC地址后,就将数据发送到数据链路层传输。这时,客户端发送请求的阶段结束

7.服务器接收数据
接收端的服务器在链路层接收到数据包,再层层向上直到应用层。这过程中包括在运输层通过TCP协议讲分段的数据包重新组成原来的HTTP请求报文。

8.服务器响应请求
服务接收到客户端发送的HTTP请求后,查找客户端请求的资源,并返回响应报文,响应报文中包括一个重要的信息——状态码。状态码由三位数字组成,其中比较常见的是200 OK表示请求成功。301表示永久重定向,即请求的资源已经永久转移到新的位置。在返回301状态码的同时,响应报文也会附带重定向的url,客户端接收到后将http请求的url做相应的改变再重新发送。404 not found 表示客户端请求的资源找不到。

  1. 服务器返回相应文件
    请求成功后,服务器会返回相应的HTML文件。接下来就到了页面的渲染阶段了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ffmpeg-2021-08-08-git-ac0408522a是一个开源的音视频处理工具,它可以在多个平台上进行编译和安装。该版本是2021年8月8日的最新版本,使用了ac0408522a的Git提交ID。 full_build表示这个版本是一个完整的构建版本,它包含了所有的功能和模块。在编译过程中,会将ffmpeg的所有组件和依赖项都包含进去,以便用户可以使用和访问所有的功能。 通过使用该版本的ffmpeg,用户可以进行各种音视频处理任务,例如转码、剪辑、合并、分割、提取音频等等。它支持多种音视频格式,包括但不限于MP4、AVI、MKV、MP3、AAC等。用户可以根据自己的需求选择不同的输入和输出格式,并且可以自定义各种编解码参数。 此外,ffmpeg还提供了丰富的命令行选项和参数,以便用户可以灵活地控制和配置转码过程。用户可以通过给定不同的命令行选项来指定输入文件、输出文件、编码方式、视频尺寸、比特率、帧率等等,以达到不同的处理目的。 需要注意的是,由于ffmpeg是一个功能强大且复杂的工具,对于初学者来说可能需要一定的学习和实践才能熟练掌握。因此,建议用户在使用之前先阅读官方文档或者参考相关教程,以便更好地了解和使用ffmpeg的功能。 ### 回答2: ffmpeg-2021-08-08-git-ac0408522a-full_build 是一个版本号为 ac0408522a 的 ffmpeg 软件的完整构建版。 FFmpeg 是一个开源的音视频处理工具,能够对音视频进行转码、混流、剪辑等操作。它提供了很多功能丰富的命令行工具,可以满足各种音视频处理需求。 这个版本的 ffmpeg 是在 2021 年 8 月 8 日基于 ac0408522a 提交的代码所编译而成。ac0408522a 是版本的特定标识符,用于追踪、识别和检索代码库中的不同版本。 full_build 表示这个版本是基于完整构建进行的,即所有功能和特性都被包含在内。这意味着在这个版本中,你可以使用 FFmpeg 提供的所有命令和选项,无需额外编译或安装其他附加组件。 对于想要使用 FFmpeg 进行音视频处理的用户来说,这个完整构建版提供了方便和易用性。用户可以通过命令行调用 ffmpeg 工具,并根据自己的需求使用不同的参数和选项,完成各种音视频处理任务,如转码、剪辑、添加字幕、提取音频等等。 由于 FFmpeg 是一个持续更新和发展的开源项目,新的版本可能会修复漏洞、增加新的功能或性能改进。因此,使用最新的版本可以获得更好的用户体验和更高的稳定性。 总之,ffmpeg-2021-08-08-git-ac0408522a-full_build 是基于 ac0408522a 提交的代码所编译而成的一个完整构建版的 FFmpeg 软件,用户可以使用其中的功能丰富的命令行工具来进行音视频处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值