logo  

跟我一起读RFC

跟我一起读RFC
作者: 陈安廉

摘要:软件开发进阶系列


RFC2616协议原文


2020-12-01 13:31:53

RFC2616 是关于http协议1.1的。


英文版:https://tools.ietf.org/html/rfc2616


中文版下载:

HTTP协议(RFC2616)中文版-UEDITOR-20201201133349808.pdf



什么是网络通信协议?


有没有可能收到错误的报文,对方发的是a,收到的是b?


不会,因为有差错控制。


http报文格式是怎么样的?





为什么80端口可以省略?

3.2.2


HTTP协议只能基于TCP协议实现吗?

1.4


如何传输内容长度不能预先确定的消息(例如一个视频)?

利用块传输编码3.6.1


如何上传文件,利用mutipart。



从浏览器发起请求到显示页面,过程是怎么样的?





浏览器为什么有时会使用缓存,而不发起请求?

304




如何解析http报文。

根据分隔符以及content-length



为什么会有跨域问题,同源策略。



rfc协议说的全是规范,也就是怎么做,但没有规定用什么来做。

即使是物理层也是如此。


http协议规定了报文的格式,以及一些通用头信息的规范。

tcp协议则规定了差错控制和流量控制的规则,以确保端到端的通信能够可靠。


ip协议则规定了路由的寻址算法,为夸网段搭建起一条虚拟电路。


链路层则规定差错控制,同网段内通信的规则。


物理层则规定了信号中继的方法,避免远程通信信号减弱至零。






物理层关注在一条通信信道上传输原始比特,确保一个比特位能够正常传输。


数据链路层的主要任务是将一个原始的传输设施转变成一条没有漏检传输错误的线路。发送方将输入的数据拆分成数据侦。


网络层主要控制子网的运行,实现垮网段通信。


传输层是真正端到端的通信,IP加端口。


应用层不再考虑传输问题。



链路层是主机与传输线路之间的接口

网络层的任务是允许主机将数据包注入到任何网络。

传输层允许原主机和目标主机上的对等实体进行对话。





物理层规定了如何在不同的介质上以电气或其他模拟信号传输比特。

链路层关注的是如何在两台直接相连的计算机之间发送有限长度的消息,并具有指定级别的可靠性。局域网就是链路层协议的例子。

网络层主要处理如何把多条链路结合到网络中,以及如何把网络与网络联结成互联网络。找到传输数据包所走的路径。

传输层增强了网络层的传递保证,通常具有更高的可靠性。





http,超文本传输协议





由于整个局域网共用一个对外IP,所以数据到达路由器时,需要找到是局域网中的哪个终端。转换为局域网通信。

aro协议关于IP转换为mac地址。