提到https,要说到几个概念:
一、http
http是超文本传输协议,也就是将传输的内容规定为一种格式,确保对方可以正确解析。http分为请求方和响应方两端,分别代表客户端和服务器。
1.下面是http请求的格式:
其中包括了三部分内容:
状态行:包括请求方式Method、资源路径URL、协议版本Version;
请求头:包括一些访问的域名、用户代理、Cookie等信息;
请求正文:就是HTTP请求的数据。
请求方式Method一般有GET、POST、PUT、DELETE,含义分别是获取、修改、上传、删除,其中GET方式仅仅为获取服务器资源,方式较为简单,因此在请求方式为GET的HTTP请求数据中,请求正文部分可以省略,直接将想要获取的资源添加到URL中。
2.下面是Http的响应格式:
状态行:包括协议版本Version、状态码Status Code、回应短语;
响应头:包括搭建服务器的软件,发送响应的时间,回应数据的格式等信息;
响应正文:就是响应的具体数据。
我们主要关心并且能够在客户端浏览器看得到的是三位数的状态码,不同的状态码代表不同的含义,其中
1xx表示HTTP请求已经接受,继续处理请求
2xx表示HTTP请求已经处理完成
3xx表示把请求访问的URL重定向到其他目录
4xx表示客户端出现错误
5xx表示服务端出现错误
其中常见状态码的含义有:
200—OK/请求已经正常处理完毕
301—/请求永久重定向
302—/请求临时重定向
304—/请求被重定向到客户端本地缓存
400—/客户端请求存在语法错误
401—/客户端请求没有经过授权
403—/客户端的请求被服务器拒绝,一般为客户端没有访问权限
404—/客户端请求的URL在服务端不存在
500—/服务端永久错误
503—/服务端发生临时错误
二、数字证书和SSL/TLS

数字证书是SSL协议和TLS协议在传输的过程中做为双方认证用的,简而言之数字证书是一种网络上证明持有者身份的文件,同时还包含有公钥。
ssl是安全套接层,tls是安全传输协议。两者都是为了保障信息不被窃听、篡改、伪造。
私钥和公钥的作用:
加解密:公钥加密,私钥解密。(没有私钥无法解密公钥加密的信息)
检验签名:私钥签名,公钥检验。(只有私钥签名后,公钥才能识别出正确的信息)
因此,只要保证服务器的私钥不丢失,基本没人可以伪造。
CA:颁发数字证书的机构。
可以这样理解SSL/TLS,这两种协议都是建立安全传输的,相当于为http进行了加密操作。
HTTPS的前后端通信过程:首先,客户端请求服务器,服务器发送CA和公钥给客户端,客户端通过自身的可信CA列表查看服务器的CA是否在可信列表内,如果在的话就去CA校验证书的合法性,若合法,则客户端将会产生随机数用服务器的公钥加密后发送给服务器,这是服务器用自身的私钥解密,这样经过几次通信之后,双方会达成一个统一的对称密钥用于通信。这样便建立了安全的连接。
三、总结
通过HTTPS的 学习,我们了解到了HTTPS是HTTP+SSL/TLS的组合,以实现安全可信的HTTP连接。另外HTTPS的端口号一般是443,HTTP端口号是80。
如果你想实现HTTPS的前后端数据传输,需要在CA机构注册自己的数字证书,并修改服务器相关参数来实现。数字证书一般几年只要几十块,为了安全还是可以尝试一下的。
网友评论