前言:本篇blog是本人的第一篇blog,主要谈一谈对于http协议和https的见解,以及在实际开发中踩过的一些坑
什么是HTTP协议
这里引用度娘的官方解释
1
2
3
4
5
6
7
8
9
10
11
12 >1.HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide
> Web )服务器传输超文本到本地浏览器的传送协议。
>
>2.HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
>
>3.HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,
>经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在
>进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。
>
>4.HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
>Web服务器根据接收到的请求后,向客户端发送响应信息
>
简单来说
其实就是客户端和服务端的通信协议
起到连接服务器和客服端的作用
什么是HTTPS协议
1
2
3
4
5
6
7 >1.HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议,是一个安全通信通道,它基于HTTP开发用于
>在客户计算机和服务器之间交换信息。
>2.它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版,是使用TLS/SSL加密的HTTP协议。HTTP协议采用
>明文传输信息,存在信息窃听、信息篡改和信息劫持的风险,而协议TLS/SSL具有身份验证、信息加密和完整性校验的功能,可
>以避免此类问题发生。TLS/SSL全称安全传输层协议Transport Layer Security,是介于TCP和HTTP之间的一层安全议,
>不影响原有的TCP协议和HTTP协议,所以使用HTTPS基本上不需要对HTTP页面进行太多的改造
>
简单来说
就是在HTTP协议上加了一道锁,让HTTP变得更加安全
另外HTTP的请求方式以及HTTP请求和相应在这里就不做过多的展开
本篇在这里主要阐述实际应用中,两种请求方式的优缺点
先说一个问题吧,公司平台出现了一笔0.01元购买了1万元产品的订单,后来发现是因为我们的APP被抓包(通过一些第三方软件获取客服端和服务端之间请求内容,并可以对请求进行拦截并修改)了,然后修改订单金额支付金额,从而从中牟利,这个问题首先是服务端对于支付回调的校验没有做好,当然这不是今天讨论的内容,这里被拦截的请求是我们常用的http请求,如果这里我们使用https请求,即使请求被拦截,也是无法修改请求内容的(当然也是特别牛逼的黑客通过破解SSL加密等方式来进行修改,这里不做展开),所以如果通过服务端和通信层的双重校验,就能极大程度上避免请求被篡改带来的风险,目前苹果对于IOS应用已经做了必须全部使用HTTPS协议的限定,之前由于HTTPS证书到期,曾造成IOS应用的彻底瘫痪,所以升级为HTTPS是有必要的
当然,使用HTTPS也是需要付出一些代价的,HTTPS由于对请求的加密和解密性能是不及HTTP的,但是在HTTP/2.0协议中这个问题也得到了一些优化,相信在未来,性能问题也将得到很大改善,不过对于HTTPS协议的使用,可以根据不同应用场景来制定,涉及到支付,用户信息相关的内容,使用HTTPS,那是必要的
另外,对于HTTP安全性方面,还有一个问题就是可以在HTTP请求头中篡改IP信息,这个对于服务器安全来说也是一种挑战,这里一种方案是使用HTTPS,但是仅仅如此是不够的,在服务器中也应设置对虚拟IP的处理,不同服务器配置不一样,这里不做展开,之前博主就通过抓包加模拟IP完成过一些网站的刷票和刷赞等
结语:作为一个经常利用一些网络安全漏洞来做一些实验的博主,对于网络安全这一块也是很有感触的,在这里跟大家简单做下分享,希望能对大家能有帮助,第一篇博客,希望大家多多支持!如有疑问,也欢迎大家与我一起探讨