了解web和http

1 http的诞生

1989年,互联网还只属于少数人。CERN(欧洲核子研究组织)的蒂姆.伯纳斯-李(Tim Berners-Lee)博士提出了一种能让远隔两地的研究者们共享知识的设想。最初设想的基本理念是:借助多文档之间互相关联形成的超文本(HtyperText),连成可互相参阅的www(World Wide Web,万维网)。

为此,制定了3项构建技术,分别是:

  • 把SGML(Standard Generalized Markup Language,标准通用标记语言)作为页面文本标记语言的HTML(HyperText Markup Language,超文本标记语言)

  • 作为文档传递协议的HTTP

  • 指定文档所在地址的URL(Uniform Resource Locator,统一资源定位符)

www,现在用来表示这一系列的集合,也可简称为Web。


2 网络基础TCP/IP

计算机、网络设备、不同的硬件、操作系统之间要通信,所有的这一切都需要一种通信规则,我们把这种通信规则称为协议(protocol)

TCP/IP协议族是互联网相关的各类协议的总称。(还有一种说法,TCP/IP是指TCP和IP这两种协议)

了解web和http_第1张图片

2.1 TCP/IP的分层

TCP/IP协议族按层次分为4层:应用层、传输层、网络层和数据链路层。

TCP/IP协议族各层的作用如下:

  • 应用层

应用层决定了向用户提供应用服务时通信的活动。比如,FTP(File Transfer Protocol,文本传输协议)、DNS(Domain Name System,域名系统)和HTTP协议。

  • 传输层

传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol,用户数据报协议)。

  • 网络层

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

与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。

  • 链路层

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

2.2 TCP/IP通信传输流

了解web和http_第2张图片

发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收层在层与层传输数据时,每经过一层时会把对应的首部消去。

以HTTP为例:

  1. 首先,作为发送端的客户端在应用层(http)发出一个想看某个web页面的HTTP请求。

  2. 然后,为了方便传输,在传输层(TCP协议)把从应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。

  3. 在网络层(IP层),增加通信目的地信息后,转发给链路层。

接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用。当传输到应用层,才能算真正接收到由客户端发送过来的HTTP请求。

这种把数据信息包装起来的做法称为封装(encapsulate)。

2.3 与HTTP关系密切的协议:IP、TCP

2.3.1 负责传输的IP协议

IP协议的作用是把各种数据包发送给对方。要保证确实传送到对方那里,需要满足两个重要条件:IP地址和MAC地址。IP地址可变,MAC地址是指网卡所属的固定地址,基本不会变更。

数据包传输示意图:

了解web和http_第3张图片

ARP协议相关内容,请自行搜索。

2.3.2 TCP协议

了解web和http_第4张图片

TCP主要包括三部分:建立连接、传输数据、断开连接。

1)建立TCP连接很简单,通过三次握手便可建立连接。

2)建立好连接后,开始传输数据。TCP数据传输牵涉到的概念很多:超时重传、快速重传、流量控制、拥塞控制等等。

3)断开连接的过程也很简单,通过四次握手完成断开连接的过程。


3 URL

了解web和http_第5张图片

你可能感兴趣的:(了解web和http)