HTTP是什么
就是超文本传输协议,Hyper Text Transfer Protocol
理解部分
我们就分成是三个词语,超文本,传输和协议。
第一点,那协议是什么?
协议的特点:
第1点,协议必须要有两个或多个参与者也就是,协
第2点,协议是对参与者的一种行为约定和规范,也就是议,比如说,要明确规定,各方的“责,权,利”,约定该做什么,不该做什么,先做什
么,后做什么。做错了怎么办,有没有补救措施。
总结:
所以基于这两点,HTTP是一个用在计算机世界里面的协议。他使用计算机能够理解的语言确立了一种计算机之间交流通信的规范以及相关的各种控制和错误处理方式。
第二点,传输
HTTP是一个传输协议,那什么是传输协议?其实就是把一堆东西从A点搬到B点或者从B点搬到A点。基于这个我们就可以看出HTTP还有两个特点,
1)HTTP协议是一个双向协议
也就是说有两个最基本的参与者a和b从a开始到b结束,数据在a和b之间双向而不是单向流动, 通常我们把先发起传输动作的a叫做请求方,然后接到传输的b叫做应答方或者响应方。
然后我们最常见的网上冲浪来举例子,浏览器就是请求方A,像新浪网易这些网站就是应答方B。双方约定用HTTP协议来通信,于是浏览器把一些数据发送给网站,网站再把一些数据发回给浏览器,最后呈现在屏幕上。
2)允许有中间方
数据虽然是在a和b之间传输,但并没有限制,只有a和b这两个角色允许中间有中转或者接力。这样传输方就成了A到B,变成了AxyzB。这样看来,从A到B的传输过程中它就可以存在多个中间人,而这些中间人也都遵循HTTP协议只要不打扰基本的数据传输,就可以添加任意的额外功能,例如安全认证、数据压缩、编码转换等等,以优化整个传输过程。
总结:
HTTP是一个在计算机世界里专门用来在两点之间传输数据的约定和规范。
第三点,超文本
第1点,我们要说的是所谓文本,文本就是表示HTTP传输的,不是TCP/UDP这些底层协议里被占的二进制包,而是完整有意义的数据。可以被浏览器服务器这样的上层应用程序处理。
所以在互联网早期的时候,文本只是简单的字符文字而发展到现在文本的含义已经被大大的扩展了,比如图片、音频、视频、压缩包在HTTP里面都可以算作是文本。
所以呢,超文本它其实就是超越了普通文本的文本,它是文字图片,音频和视频等的混合体,最关键的是含有超链接,能够从一个超文本跳到另外一个超文本,形成复杂的,非线性的网状结构关系。
对于超文本,我们最熟悉的就是html本身只是纯文字文件,但内部用很多标签定义了对图片,音频视频等的链接,在经过浏览器的解释,呈现在我们面前的就是一个含有多种视频信息的页面。
大总结:*
HTTP是一个在计算机世界里专门在两点之间传输文字、图片、音频和视频等超文本数据的约定和规范。
HTTP不是什么
接下来我们来看一下,那HTTP它不是什么。首先HTTP是一个协议,是一种计算机间通信的规范,所以它不存在单独的实体,。它不是浏览器手机APP那样的应用程序,也不是windows、Linux那样的操作系统,更不是Apache、Nginx、Tomcat那样的web服务器。
但HTTP又与应用程序、操作系统、web服务器密切相关,在他们之间的通信过程中存在,而且又是一种动态的存在,是发生在网络连接、传输超文本数据时的一个动态过程。
HTTP不是互联网
HTTP是遍布于全球的许多网络,互相连接而形成了一个巨大的国际网络,在它的上面存放着各种资源,也对应着各种各样的协议。例如超文本资源使用HTTP, 普通文件使用FTP,电子邮件使用SMTP,和POP3等。
所以是互联网中的一块重要拼图。
HTTP不是编程语言
HTTP它其实是一种计算机和计算机沟通交流的语言,我们无法用HTTP来编程。但可以反过来,用编程语言去实现HTTP,去告诉计算机如何用HTTP与外界的通信。
很多流行的编程语言都支持编写HTTP,比如说Java在Tomcat里编写Web服务,使用PHP在后端实现页面模板渲染,使用JavaScript在前端实现动态页面更新。
HTTP不是HTML
所以这里我们要强调的是HTTP 和HTML不一。
HP ML是一种超文本的载体,是一种标记语言,使用各种标签来描述文字图片超链接的资源,并且可以嵌入css JavaScript等技术,实现复杂的动态效果。所以他们次数来说,在互联网上HTTP传输最多的可能就是ht ml,但要说数据量就要往后排。图片音频视频这些类型的资源显然会更大。
HTTP不是一个孤立的协议
小结
- HTTP是一个用在计算机世界里的协议,它确立了一种计算机之间交流通信的规范以及相关的各种控制和错误处理方式。
- HTTP专门用来在两点之间传输数据,不能用于广播寻址或路由
- HTTP传输的是文字图片,音频视频等超文本数据,
- HTTP是构建互联网的重要基础技术,它没有实体,它依赖于许多其他的技术来实现,但同时许多技术也需要依赖他。
额外
- HTTP是在计算机世界里,用于两点之间之间传输超文本的协议。这两点并不限定于是服务器还是浏览器。可以是从浏览器到服务器,也可以从服务器到服务器,也可以是浏览器到浏览器。并不能描述成从服务器到浏览器。