HTTP协议详解(一)

阿里云服务器优惠链接:云小站_专享特惠_云产品推荐-阿里云

本篇博文是作者在极客时间看过罗剑锋老师的《透视HTTP协议》之后总结而出的。

做开发的不管是web开发还是APP都是经常和HTTP协议打交道,可能大家都有过同样的想法:“HTTP不就是一个无状态的协议吗,响应/请求,POST/GET,session,header,网上的资料海了去了。”,事实上HTTP的原理绝非如此简单。

HTTP的诞生

HTTP于1989年由蒂姆·伯纳斯 - 李(Tim Berners-Lee)提出了在互联网上构建超链接文档系统的构想,确立了三项技术:

1.URI:统一资源标识符

2.HTML:超文本标记语言

3.HTTP:超文本传输协议

蒂姆把这个系统称为“万维网”(World Wide Web),就是现在我们熟知的Web。

HTTP是什么?

经常会有人问“HTTP是什么?”,然后答案随之而来“超文本传输协议啊,就是HyperText Transfer Protocol”,当然,答案是正确的,但是还是过于简单了。

首先看HTTP的名字,超文本传输协议,可以拆分为三部分理解——超文本、传输、协议。

先来理解一下协议,什么是协议?在生活中,租房会有“租房协议”,使用各种软件也会有“用户许可协议”,那么就很好理解了,“协议”必须要有两个及以上的参与者才能做到“协”,如果只有你一个人你想干什么就干什么,不会有其他人干涉你,自然也不需要“协议”,但是一旦有了另外一个人跟你一起玩,那么为了保证你们能顺畅的交流,“协议”就出现了。

第二点,协议对参与者的行为有一定的规范和约定。

当多个参与者为了达成各自的目的而站在了一起,除了双方能顺畅的沟通以外,还需要订立双方的责任,职责和权力,约定该做什么不该做什么,先做什么后做什么,做错了怎么办,有没有补救措施等等,还用我们的“租房协议”举个例子,“租房协议”中就约定了房租多少,租多久,水电费谁来付,家具损坏怎么赔,违约应怎么处理等等。

那么到这里,就是HTTP的第一层含义:

HTTP 是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。

接下来我们在看HTTP字面中的“传输”。

HTTP是一个“传输协议”,所谓的“传输”其实很好理解,类似于传送带,把货物从A点传输到B点,那么HTTP对传输是怎么定义的呢?

第一点,HTTP协议是一个“双向协议”,也就是说传送带把货物从A传送到B,B收到货物之后通过传送带把消息传送给A,告诉A我收到你给我的货物了。通常我们把先发起传输动作的A称为请求方,把后接收到传输的B叫做响应方。再用我们最常见的上网举个例子,我们用的浏览器就是请求方A,百度就是响应方B,双方约定使用HTTP协议来通信,于是你操作浏览器在百度地址栏输入Java,那么传送带(HTTP)就会带着你的数据“Java”去跟百度通信,告诉百度你要“Java”相关的信息,百度在收到浏览器的请求之后,会把关于“Java”的信息通过传送带(HTTP)返回给浏览器,你就能看到Java相关的信息了。

第二点,数据虽然是在 A 和 B 之间传输,但并没有限制只有A和B两个角色,也就是可以有更多的参与者,但是请求方必须是A,响应方必须是B,因为这是A和B约定的,在A向B传输数据的过程中可以经过任意的“中间人”,而这些“中间人”也必须遵守HTTP协议,只要不打扰基本的数据传输,这些“中间人”可以做很多事情,比如安全认证、数据压缩、编码转换等等。

说到这里,那么HTTP字面中的“传输”的含义差不多能明白了,

HTTP 是一个在计算机世界里专门用来在两点之间传输数据的约定和规范。

讲完了“协议”和“传输”,剩下的就是“超文本”了。

什么是超文本?

就是“超越了普通文本的文本”,它是文字、图片、音频和视频等的混合体,最关键的是含有“超链接(URL)”,能够从一个超文本跳到另一个超文本,形成复杂的网状的结构关系。

对于“超文本”,我们最熟悉的就是HTML了,它本身只是纯文本文件,但是内部很多标签定义了对图片、音频、视频等的链接,在经过浏览器的解释,呈现在我们面前的就是一个含有多种视听信息的页面。

到这里,我们应该知道HTTP具体是什么了。

HTTP是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值