计算机网络-HTTP与HTTPS

HTTPS 和 HTTP

我们使用浏览器访问一个网站页面,在浏览器的地址栏中我们会看到一串URL,如
http://www.domain.com
网站的URL会分为两部分:通信协议和域名地址。
域名地址都很好理解,不同的域名地址表示网站中不同的页面,而通信协议,简单来说就是浏览器和服务器之间沟通的语言。网站中的通信协议一般就是HTTP协议和HTTPS协议。

什么是HTTP

超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,是一种使用明文数据传输的网络协议。一直以来HTTP协议都是最主流的网页协议,但是互联网发展到今天,HTTP协议的明文传输会让用户存在一个非常大的安全隐患。

HTTP的特点

1.支持客户/服务器模式(C/S模式)
2.简单快速:客户对服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET,HEAD,POST。由于协议简单,使得HTTP服务器的程序规模小,因此通信速度很快。
3.无连接:限制每次连接只处理一个请求。服务器处理完客户端的请求并收到应答后就断开连接。
4.无状态:协议对事务处理没有记忆能力。意味着如果后续处理需要前面的信息,则必须重传,可能导致每次连接传送的数据量增大。而如果不需要先前信息时应答就比较快。

HTTP工作流程

第一步:建立TCP/IP连接,客户端与服务器通过Socket三次握手进行连接
第二步:客户端向服务器发送HTTP请求(如:POST/login.html http/1.1)
第三步:客户端发送请求头信息,请求内容,最后会发送一空白行表示请求完毕
第四步:服务器做出应答,表示对于客户端请求的应答,例如:HTTP/1.1 200 OK
第五步:服务器向客户端发送应答头信息,最后发送一空白行,标示应答头信息发送完毕,接着就以Content-type要求的数据格式发送数据给客户端
第六步:服务端关闭TCP连接。

什么是HTTPS

HTTPS是身披SSL外壳的HTTP。HTTPS协议可以理解为HTTP协议的升级,就是在HTTP的基础上增加了数据加密。在数据进行传输之前,对数据进行加密,然后再发送到服务器。这样,就算数据被第三者所截获,但是由于数据是加密的,所以你的个人信息仍然是安全的。这就是HTTP和HTTPS的最大区别。

HTTPS工作流程

计算机网络-HTTP与HTTPS

HTTPS的缺点

1.技术门槛高
2.CA机构颁发的证书时需要年费的,多数个人和私人网站难以支撑
3.目前大多数网站并不关注数据安全性和保密性
4.加重了服务器的负担,从而降低了访问速度

区别

1)HTTP协议以明文无状态的方式在网络中传输数据,而HTTPS协议是由SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议,更安全。(SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。)
2)HTTPS在TCP三次握手之后还需要进行SSL的handshake,协商加密使用的对称加***
3)HTTPS协议需要服务端申请证书
4)HTTP协议端口号是80,HTTPS协议端口号是443