http

Web使用HTTP(HyperText Transfer Protocol,超文本传输协议)作为规范,完成从客户端到服务器的一系列流程。可以说,Web是建立在HTTP通信协议上的。

  1. HTTP 的历史
    • HTTP 诞生于1990年,那时候并没有被作为正式的标准建立,这时的HTTP 其实含有HTTP/1.0之前版本的意思,因此被称为HTTP/0.9
    • HTTP被作为正式标准公布实在1996年5月,被命名为HTTP/1.0,并记载于RFC1945
    • 目前主流的HTTP协议版本是1997年1月公布的HTTP/1.1

2.TCP/IP
通常使用的网络,是在TCP/IP协议族的基础上运作的。HTTP属于它内部的一个子集。

  • TCP/IP 协议族
    计算机与网络设备要相互通信,双方就必须基于相同的方法。不同的硬件,操作系统之间的通信,所有这一切都需要一种规则,我们就把这种规则称为协议。
    协议中存在各式各样的内容。
    像这样把互联网相关联的协议集合起来总称为 TCP/IP
  • TCP/IP的分层管理
    TCP/IP协议族里最重要的一点就是分层。TCP/IP协议族按层次分别分为一下四层:应用层、传输层、网络层和数据链层

    分层的好处:
    1)在某个地方需要改变设计时,只需要把变动的层替换掉即可而不必把所有部分整体换掉。各层之间接口部分规划好之后,每个层次内部的设计就能够自由的改动了。
    2)层次化之后,设计也变得相对简单了。处于应用层上的应用可以只考虑分派给自己的任务为不必考虑其他。

应用层
应用层决定了向用户提供应用服务的时通信的活动。
TCP/IP协议族内预存了各类通用的应用服务,比如,FTP 和 DNS。HTTP 协议也处于该层。

传输层
传输层对上层的应用层提供网络连接中的两台计算机之间的数据传输。这层有两个性质完全不同的协议: TCP(传输控制协议)和UDP(用户数据报协议)

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

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

  • 负责传输的IP协议

    • IP协议位于网络层,作用就是把数据包传送给对方,其中两个重要的条件是IP地址和MAC地址。
    • IP地址指明了节点被分配到的地址,MAC地址指的是网卡所属的固定地址。IP地址可以和MAC地址进行配对,IP地址可以变换,但是MAC地址基本上不会更改。
    • 使用ARP协议凭借MAC地址进行通信。ARP是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。
    • 没有人能全面掌握互联网中的传输状况
  • 确保可靠性的TCP协议

    • TCP协议位于传输层,提供可靠的字节流服务。字节流服务指的是,为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。
    • 为了准确无误的就爱你个数据送达目标处,TCP协议采用了三次握手策略首先发送端发送带有SYN标志的数据包,然后接收端收到后回传一个带有SYN/ACk标志的数据包以示传达确认信息。最后,发送端再回传一个带有ACK标志的数据包,握手结束。
  • 负责域名解析的DNS服务

    DNS服务是和HTTP协议一样位于应用层的协议。 它提供域名到IP地址之间的解析服务。

#####各种协议与HTTP协议的关系图

关系图

地址栏的一次回车以后到底发生了生么?

http请求过程.png