文章目录
第一个问题:什么是HTTP?
HTTP,全称Hypertext Transfer Protocol,即超文本传输协议,是一种网络协议。要了解什么是HTTP,可以将其组成逐个分割理解:超文本(Hypertext)、传输(Transfer)、协议(Protocol)。
超文本(Hypertext):在互联网早期,我们保存的信息只能以文本,即简单字符的形式保存,并在电脑之间进行传输。之后随着互联网的发展,人们还想在电脑之间传输图片、视频、音频等信息,于是“文本”这一语义便进一步扩大,不再只局限于简单的字符,而变成了包含文字、图片、视频、音频等信息的“超文本”。
传输(Transfer):即两台计算机终端之间进行数据通信的过程,称为传输。一方作为请求方请求信息,另一方作为响应方将信息传递给请求方。
协议(Protocol):协议在现实世界中也存在,比如劳动协议、离婚协议等等。协议就是一种规范,参与协议的各方要必须遵守协议所规定的内容进行活动。
那么综合起来:HTTP就是在网络世界中传输文字、图片、视频、音频时,参与传输的各方需要遵守的规范。
第二个问题:为什么要学HTTP?
为了面试嘛,没办法,面试会问(笑)。
正经来说,HTTP之于Web,就像空气之于人,虽然感受不到它的存在,但在Web应用中几乎百分百使用了HTTP。学习HTTP,了解它的运作过程和原理,有助于我们编写设计Web项目,进行排错等。
第三个问题:HTTP要学些什么?
要了解HTTP,需要了解在网络世界的传输过程中,有哪些组件参与了HTTP,有哪些协议配合了HTTP执行其规范,HTTP整个执行过程是怎样的,以及HTTP的表现形式(从哪里可以看出HTTP在执行)。
一、与HTTP有关的组件
-
网络模型:网络世界的运行很复杂,为了使网络世界能够安全有序高效地运行,我们将计算机网络分层,在每个分层中建立一些协议,来确保网络的正常运行。网络模型也有分类,一是OSI七层模型,二是TCP/IP四层模型,但是一般在初学时,为了方便初学者学习,我们采用介于二者之间的五层网络模型。下面一一介绍五层模型中各层的作用及及协议。
-
应用层: 应用层定义的是应用进程间通信和交互的规则。传输的数据单位是报文(message)。
- HTTP:超文本传输协议
- SMTP:电子邮件传送协议
- FTP:端系统文件上传协议
- DNS:域名解析协议
-
传输层:负责向两个主机中进程之间的通信提供通用数据服务。传输的数据单位是报文段(segment)。
- TCP:传输控制协议,向它的应用程序提供了面向连接的服务。 <
-