1、什么是HTTP?
1、超文本传输协议(Hyper Text Transfer Protocol)是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。HTPP有多个版本,目前广泛使用的是HTTP/1.1版本。
2、HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为HTML 文件,、图片文件, 查询结果等。
3、HTTP协议一般用于B/S架构。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
2、HTTP的特点
1、http协议支持客户端/服务端模式,也是一种请求/响应模式的协议。
2、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。
3、灵活:HTTP允许传输任意类型的数据对象。传输的类型由Content-Type加以标记。
4、无连接:限制每次连接只处理一个请求。服务器处理完请求,并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不足,产生了两项记录http状态的技术,一个叫做Cookie,一个叫做Session。
5、无状态:无状态是指协议对于事务处理没有记忆,后续处理需要前面的信息,则必须重传。
3、HTTP发展历史
HTTP2的最大改变是多路复用,这对一最初单一请求响应的模式是极大的改变,从而对HTTP的性能得到了极大的提升。
4、HTTP报文格式
Request
Response
\r代表回车,\n代表换行,也就是 CRLF。
5、什么是HTTPS
HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。
HTTPS 默认工作在 TCP 协议443端口,它的工作流程一般如以下方式:
1、TCP 三次同步握手
2、客户端验证服务器数字证书
3、DH 算法协商对称加密算法的密钥、hash 算法的密钥
4、SSL 安全加密隧道协商完成
5、网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。
SSL加密过程如下:
6、两者对比
1、HTTP基于明文传输,数据未加密,HTTPS数据传输过程是加密的,安全性好
2、使用HTTPS需要到CA申请证书,一般免费证书较少,因此需要一定费用。
3、HTTP比HTTPS快,是因为他没有SSL加密过程,完全基于TCP的三次握手就可以建立连接。前者三个包后者十二个包,多了九个包。
4、HTTP的默认端口是80,HTTPS是443
5、HTTPS更加耗费资源,因为它通过SSL进行包装