认识HTTP
首先,HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol)。
怎样理解超文本传输协议呢?
超文本传输协议可以进行文字分割:超文本(Hypertext)、传输(Transfer)、协议(Protocol)
它们之间的关系可以用下图来表示:
按照范围的大小可以理解为 协议 > 传输 > 超文本,下面我们可以分别对三个名词做一个解释。
什么是超文本
在互联网早期的时候,我们输入的信息只能保存在本地,无法和其他电脑进行交互。我们保存的信息通常都以文本即简单字符的形式存在,文本是一种能够被计算机解析的有意义的二进制数据包。而随着互联网的高速发展,两台电脑之间能够进行数据的传输后,人们不满足只能在两台电脑之间传输文字,还想要传输图片、音频、视频,甚至点击文字或图片能够进行超链接的跳转,那么文本的语义就被扩大了,这种语义扩大后的文本就被称为超文本(Hypertext)。
超文本(Hypertext)是用 超链接的方法,将各种不同空间的文字 信息组织在一起的网状文本。超文本更是一种用户介面范式,用以显示文本及与文本之间相关的内容。现时超文本普遍以电子文档方式存在,其中的文字包含有可以链结到其他位置或者文档的连结,允许从当前阅读位置直接切换到超文本连结所指向的位置。超文本的格式有很多,目前最常使用的是 超文本标记语言(Hyper Text Markup Language, HTML)及 富文本格式 (Rich Text Format, RTF)。我们日常浏览的 网页上的链结都属于 超文本。
什么是传输
两台计算机之间会形成互联关系进行通信,我们存储的超文本会被解析成为二进制数据包,由传输载体(例如同轴电缆,电话线,光缆)负责把二进制数据包由计算机终端传输到另一个终端的过程称为传输(transfer)。
通常我们把传输数据包的一方称为请求方,把接到二进制数据包的一方称为应答方。请求方和应答方可以进行互换,请求方也可以作为应答方接受数据,应答方也可以作为请求方请求数据。
什么是协议
我们这里所说的协议是指网络协议。
在计算机网络中要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则。这些规则明确地规定了所交换的数据格式以及有关的同步问题,这里所说同步不是狭义的(即同频或同频相同)。而是广义的,即在一定的条件下应当发生什么事件,(例如,应当发送一个应当信息),因而同步含有时许的意思,这些为进行网络中的数据交换而建立的规则,标准或约定称为网络协议。网络协议也可简称为协议,更进一步讲,协议主要由以下三个要素组成
1 语法 即数据与控制信息的结构或格式。
2 语义 即需要发出何种控制信息,完成何种动作以及做出何种响应
3 同步 即事件实现顺序的详细说明
与HTTP有关的组件
网络模型
OSI模型
浏览器
web服务器
CDN
WAF
WebService
HTML
Web页面构成
这里只是简略的给大家介绍一下相关的组件,感兴趣的可以自行到网上进行更加详细的查询。
与HTTP有关的协议
TCP/IP
TCP/IP 协议你一定听过,TCP/IP 我们一般称之为协议簇,什么意思呢?就是 TCP/IP 协议簇中不仅仅只有 TCP 协议和 IP 协议,它是一系列网络通信协议的统称。而其中最核心的两个协议就是 TCP / IP 协议,其他的还有 UDP、ICMP、ARP 等等,共同构成了一个复杂但有层次的协议栈。
TCP 协议的全称是 Transmission Control Protocol 的缩写,意思是传输控制协议,HTTP 使用 TCP 作为通信协议,这是因为 TCP 是一种可靠的协议,而可靠能保证数据不丢失。
IP 协议的全称是 Internet Protocol 的缩写,它主要解决的是通信双方寻址的问题。IP 协议使用 IP 地址 来标识互联网上的每一台计算机,可以把 IP 地址想象成为你手机的电话号码,你要与他人通话必须先要知道他人的手机号码,计算机网络中信息交换必须先要知道对方的 IP 地址。
DNS
你有没有想过为什么你可以通过键入 www.google.com 就能够获取你想要的网站?我们上面说到,计算机网络中的每个端系统都有一个 IP 地址存在,而把 IP 地址转换为便于人类记忆的协议就是 DNS 协议。
DNS 的全称是域名系统(Domain Name System,缩写:DNS),它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
URI / URL
上面提到,可以通过输入 www.google.com 地址来访问谷歌的官网,那么这个地址有什么规定吗?是怎么输都可以?AAA.BBB.CCC 是不是也行?当然不是的,你输入的地址格式必须要满足 URI 的规范。
URI的全称是(Uniform Resource Identifier),中文名称是统一资源标识符,使用它就能够唯一地标记互联网上资源。
URL的全称是(Uniform Resource Locator),中文名称是统一资源定位符,也就是我们俗称的网址,它实际上是 URI 的一个子集。
HTTPS
HTTP 一般是明文传输,很容易被攻击者窃取重要信息,鉴于此,HTTPS 应运而生。HTTPS 的全称为 (Hyper Text Transfer Protocol over SecureSocket Layer),全称有点长,HTTPS 和 HTTP 有很大的不同在于 HTTPS 是以安全为目标的 HTTP 通道,在 HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在 HTTP 的基础上增加了 SSL 层,也就是说 HTTPS = HTTP + SSL。