HTTP笔记(一)基本介绍

来源:互联网 发布:取个淘宝达人名字 编辑:程序博客网 时间:2024/05/18 06:26

浏览器访问Web都发生了什么?

在浏览器的地址栏输入URL,请求信息会被送到某处。然后从某处获得响应,响应的具体内容会显示在Web页面上。

一个Web浏览器

浏览器根据地址栏中的URL,从某处(服务器端)获取文件资源(resource)等信息,从而来显示Web页面。
像这种发送请求获取服务资源的一端,都可被称为客户端(client)。

HTTP

Web使用一种名为HTTP(HyperText Transfer Protocol,超文本传输协议)的协议作为规范,完成从客户端到服务器等一系列运作流程。而协议是指规则的约定。
通常的网络是在TCP/IP协议族的基础上运作的。HTTP属于它内部的一个子集。

TCP/IP的分层管理

TCP/IP协议族分层依次为以下4层:
1. 应用层
2. 传输层
3. 网络层
4. 数据链路层

TCP/IP模型

TCP/IP分层是有好处的,如果只有一个层的,需求如果发生变动,需要把整体替换掉。而分层只需替换发生变动的层就可以了。把各层之间的接口部分规划好,每个层内部设计就可以自由改动了。设计也变得相对简单。处于应用层上的应用可以只考虑分派给自己的任务,而不需要弄清对方的IP、是否能确保传输送达到等问题。

TCP/IP各层的作用

应用层

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

传输层

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

网络层(又名网络互连层)

网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。网络层规定了通过怎样的传输路线到达对方计算机,并把数据包传送给对方。
如,有多台计算机或者网络设备进行传输,网络层的作用就是在众多的选项中选择一条传输线路。

链路层(又名数据链路层,网络接口层)

用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、网卡,及光纤等物理可见部分。

TCP/IP通信传输流

通信传输流

TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往硬件层走,接收端则从硬件层往应用层走。
以一个HTTP请求举例。首先作为发送端的客户端在应用层(HTTP协议)发出一个浏览Web页面的HTTP请求。为了方便传输,在传输层(TCP协议)把从应用层接收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记号及端口号转发给网络层。网络层(IP协议),增加作为通信目的地的MAC地址后转发给数据链路层。这样一来,发往网络通信的请求就准备齐全了。服务器在数据链路层接收到数据,按顺序依次从硬件层向应用层传递数据,当传输到应用层,才算真正从客户端收到发来的HTTP请求。

发送端在层与层之间传输数据时,每经过一层时必会新增一个该层所属的首部信息,反之,在接收端层与层传输数据时,每经过一层时会把对应的首部去掉,这种把数据信息包装起来的做法称作封装。

与HTTP相关的协议:IP、TCP和DNS

负责传输的IP协议

IP(Internet Protocol)网际协议,位于网络层。主要作用是把各种数据包传送给对方。而确保接收方,则需满足各种条件,其中最重要的两个是IP地址和MAC地址(Media Access Control Address)。
ARP协议(Address Resolution Protocol)。ARP是一种以解析地址的协议,根据通信方的IP就可以反查出对应的MAC地址。

确保责可靠性的TCP

TCP位于传输层,提供可靠的字节流服务。字节流服务(Byte Stream Service),为了传输方便,将大数据块分割成以报文段(segment)为单位的数据包进行管理。而可靠地传输服务是指,能够把数据准确可靠地传递给对方。
为了确保将数据送达到目标处,TCP协议采用了三次握手策略。握手过程中使用了TCP的标志(flag)—-SYN(synchronize)和ACK(acknowledgement)。
发送端首先发送一个带有SYN标志的数据包给对方。接收端回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后发送端回传一个带ACK标志的数据包,代表一次请求结束。
三次握手

负责域名解析的DNS服务

DNS(Domain Name System)服务是和HTTP协议一样位于应用层的协议。提供域名到IP地址之间的解析服务,或是逆向从IP地址反查域名服务。
DNS域名解析的流程

1 0