为什么要学HTTP?
我们绝大多数的Web应用都是基于HTTP来进行开发的。我们对Web的操作都是通过HTTP协议来进行传输数据的。
HTTP的诞生主要是为了能够让文档之间相互关联,形成超文本可以互相传阅
可以说,Http就是Web通信的基础,这是我们必学的。
Http基础概念
我们学计算机网络的时候就知道,我们把计算机网络分层了5层,一般我们现在用的都是TCP/IP这么一个分层结构。
虽然官方的是ISO 7层结构,但是仅仅是理论基础,在实际上大多人都是使用TCP/IP的分层结构
首先,我们先得知道,为什么我们要在计算机网络中分层次???
因为如果两台计算机能够相互通信的话,实际实现起来是非常困难操作的...我们分层的目的就是为了将困难的问题简单化,并且如果我们分层了,我们在使用的时候就可以仅仅关注我们需要关注的层次,而不用理会其他层。
如果需要改动设计的时候,我们只需要把变动的层替换即可,并不用涉及到其他的层次。这与我们程序设计中的低耦合是一个概念。
与HTTP相关的协议
我们知道HTTP是在应用层中的,显然,我们在Web通信的过程中,不仅仅是需要HTTP协议的,还会涉及到其他的协议的。
DNS:负责解析域名
- 我们访问一个网页的时候,往往是通过域名来访问的
www.baidu.com
,而计算机通信只认的是我们的主机地址,因此,当我们输入域名的时候,需要DNS把域名解析成主机来进行访问
HTTP:产生请求报文数据
- 当我们对Web页面进行操作的时候,就会产生HTTP报文数据,请求对应的服务端进行响应。
TCP:分割HTTP数据,保证数据运输
- TCP协议采用了三次握手的方式来保证数据的准确运输,在运输的数据的时候,发送标识过去给服务器,服务器也返回标识给客户端,而客户端收到消息后再次返回标识给服务器。这样一来就保证了数据运输是可靠的。
IP:传输数据包,找到通信目的地地址。
- IP协议把我们的产生的数据包发送给对方,IP地址指明了节点被分配的地址,但IP地址可能会变换,我们可以使用ARP协议来将IP地址反射为MAC地址。MAC地址是不会更改的,是网卡所属的固定地址。
- 在找到通信目的地之前,我们是需要不断的中转的,这过程我们称作为:“路由中转”,我们并不知道路由中转了多少次的。因此是不能全面了解到互联网中的传输状况的。
我们网页上请求数据就是上边这么一个流程。