HTTP 协议和 HTTPS 协议

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(响应)的所有信息。


HTTPS


HTTPS是Hypertext Transfer Protocol Secure的缩写,翻译为超文本传输安全协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。

HTTPS就像是加密电话,通过一些手段来加密通话内容的。他是基于普通电话的,但是又不是普通的电话,更不是普通电话的升级版。
所以,HTTP和HTTPS是两个不同的协议。

HTTP的URL是由“http://”起始与默认使用端口80,而HTTPS的URL则是由“https://”起始与默认使用端口443。
HTTP不是安全的,而且攻击者可以通过监听和中间人攻击等手段,获取网站帐户和敏感信息等。

HTTPS的设计可以防止前述攻击,在正确配置时是安全的。
参考文章:https://mp.weixin.qq.com/s/XyTwaXT-JlEosgjDebinHw
 

发布了212 篇原创文章 · 获赞 40 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/dujuancao11/article/details/105202202