本文通过比喻的方式介绍了什么是HTTP,并阐述了从HTTP/1.0 到HTTP/3各个版本的区别和特点,值得一看 。以下是原文:
周末一大早,我正在电脑前面浏览一些技术网站,突然女朋友大喊起来:哇,杭州又下大雪啦,快来看啊 。我并没有理她,于是她跑过来拉我 。
文章插图
文章插图
文章插图
文章插图
文章插图
? 图,雪后杭州
文章插图
文章插图
由这次下雪将要介绍的HTTP和RPC也有点关系,都是通信方式 。
什么是HTTP协议
HTTP是HyperText Transfer Protocol的缩写,中文翻译为超文本传输协议 。他是一种用于分布式、协作式和超媒体信息系统的应用层协议 。HTTP是万维网的数据通信的基础 。
说的简单点,其实HTTP协议主要就是用来进行客户端和服务器之间进行通信的标准协议 。HTTP主要规定了客户端如何与服务器建立链接、客户端如何从服务器请求数据、服务器如何响应请求,以及最后连接如何关闭 。
当我们在浏览器中输入一个url,如http://www.taobao.com,然后按下回车,一直到页面显示淘宝网的首页的过程就是一次HTTP的网络通信 。
这次通信过程中,我们查看淘宝使用的电脑就是客户端,而搭建淘宝网的那些计算机机器就是服务器 。
文章插图
?这个过程有点像老板通过电话给员工下达命令 。当我们在浏览器输入网址并按下回车之后,共发生了以下四件事:
1、建立连接:老板拨通手下员工的电话
2、进行请求:老板提出自己的要求
3、响应:员工应答老板的请求
4、关闭连接:挂断电话
建立连接
老板找出自己公司的总机电话号并拨通,员工接听电话的过程就是建立连接 。
根据用户输入的URL地址,通过DNS、负载均衡等技术找到一台服务器,客户端与服务器的80端口建立一个TCP链接 。
进行请求
电话被接通之后,老板可能要求某个具体员工来进行接听,并且会对该员工下达一些命令,比如帮他取个快递,帮他预订个酒店,帮他收购一家公司等 。这个过程就进行请求(request) 。
客户端向服务器发送消息,请求URL中指定的页面,要求执行指定的操作 。
老板对员工下达的命令中,可以分为很多种,比如有些命令只是简单的事情询问、而有些命令则要求员工执行某些决定,如收购公司等 。
同样的,HTTP的请求方法也有很多种,主要的有GET、POST、HEAD等 。
响应
员工在接收到老板下单的命令后,需要对该命令做出回应 。比如直接告知老板他接下来的行程,帮老板预订好酒店后告诉他已经预订成功等 。这个过程就是响应(response)
服务器向客户端发送响应 。响应以状态码开头 。常见的状态码有:200、302、404、500等 。
HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用 。HTTP状态码共分为5种类型:
分类分类描述1**信息,服务器收到请求,需要请求者继续执行操作2**成功,操作被成功接收并处理3**重定向,需要进一步的操作以完成请求4**客户端错误,请求包含语法错误或无法完成请求5**服务器错误,服务器在处理请求的过程中发生了错误
关闭连接
老板在下达完命令,并且员工给予响应之后,双方会挂断电话 。这个过程就是关闭连接 。
客户端或服务端都可以关闭连接 。每个请求都是用一个单独的网络连接 。
特别的是:服务器不回记忆前面一次连接或者其结果,这种不记忆过去请求的协议被称为无状态(stateless)协议 。
文章插图
?上图就是一次淘宝网的HTTP请求的过程 。其中显示了request(请求)和response(响应)的所有信息 。
- 现充爆炸是什么梗 是什么意思
- 猕猴桃什么季节成熟 猕猴桃的收获季节是什么时候
- 1450是什么意思网络用语 网络语言1450什么意思
- 人防车位是什么意思 人防车位值得租吗
- 可可豆和咖啡豆的区别 可可豆与咖啡豆的区别是什么
- 皮卡丘到底是什么动物 神奇宝贝皮卡丘的原型是什么动物
- 烟瘾犯了是什么感觉 烟瘾来了胸口闷闷的
- 印度人是什么人种 印度人种属于哪种人是白色
- 普高是什么意思 普通高中和职业高中的区别有哪些
- 文殊菩萨的坐骑叫什么名字 西游记文殊菩萨的坐骑是什么动物