HTTP是超文本传输协议,HTTP(消息结构)是基于C/S的架构模型,HTTP客户端通过URL向HTTP服务端发送请求(原理),基于TCP/IP通信层协议来传输数据的
web服务器有:Nginx、Apache、IIS服务器等
默认端口是80
HTTP的请求方法
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
HTTP的状态码
1** 信息、服务器收到请求需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误
HTTP1.0和HTTP1.1的区别
主要区别从五个方面来讲:长连接、Host域、带宽优化、消息传递、缓存
HTTP1.0默认使用短连接,HTTP1.1支持长连接
HTTP1.0有一些浪费带宽的现象,(请求资源时,你想要资源中的某一个部分,它会把所有的资源都交给你)不支持断点续传的功能,HTTP1.1请求消息中引入了range头域,支持只请求资源的某个部分。
HTTP1.1比HTTP1.0多支持了物种请求方法
HTTP1.1在Request消息头中多了一个Host域,而HTTP1.0没有。(HTTP1.1请求和响应都应该支持Host域,如果请求消息中没有Host域,会报错400;HTTP1.0认为一台服务器绑定一个唯一的IP地址,后来虚拟主机技术的发展,一台服务器上面可以有多个虚拟主机,它们共享一个IP地址)
HTTPS安全超文本传输协议,是客户端浏览器和web服务器之间的应用层协议
-
如上图所示 HTTPS 相比 HTTP 多了一层 SSL/TLS
SSL/TLS :SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层为数据通讯进行加密提供安全支持。
SSL协议可分为两层: SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。相当于连接
SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 相当于通信
SSL协议提供的服务主要有:
ssl:身份认证和数据加密。保证数据完整性
1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
2)加密数据以防止数据中途被窃取;
3)维护数据的完整性,确保数据在传输过程中不被改变。
HTTP传输面临的风险
- 窃听风险:黑客可以获知通信内容。
- 篡改风险:黑客可以修改通信内容。
- 冒充风险:黑客可以冒充他人身份参与通信。
HTTPS传输更加安全
(1) 所有信息都是加密传播,黑客无法窃听。
(2) 具有校验机制,一旦被篡改,通信双方会立刻发现。
(3) 配备身份证书,防止身份被冒充。
HTTPS的缺点
- SSL 证书费用很高,以及其在服务器上的部署、更新维护非常繁琐
- HTTPS 降低用户访问速度(多次握手)
- 网站改用HTTPS 以后,由HTTP 跳转到 HTTPS 的方式增加了用户访问耗时(多数网站采用302跳转)
- HTTPS 涉及到的安全算法会消耗 CPU 资源,需要增加大量机器(https访问过程需要加解密)