HTTP
超文本传输协议
是一个基于请求与响应模式的,无状态的,应用层的,面向对象的协议,常基于TCP的连接方式
无状态是指:Web浏览器与Web服务器之间不需要建立持久的连接,这意味当一个客户端向服务器端发出请求,然后Web服务器返回 响应(Response),连接就被关闭了。
http的弊端:在传输过程中容易被抓包
如何解决?
HTTPS
HTTPS=HTTP+SSL(安全套接层)
现在基本是TLS
https并没有改变http协议本身的特性,只是在传输过程中利用SSL/TLS技术进行加密,保障传输过程中的安全。
如果在用户端利用进行抓包,依然可以通过代理技术实现对Web访问的劫持,因此并不会有效提升服务器的安全性。
受制于成本问题,多数大型站点仍然会采用HTTP进行业务开展。
HTTP状态码
4XX:客户端错误,请求有语法错误或请求无法实现
状态码 | 含义 |
---|---|
302 | 重定向 |
404 | 请求资源不存在 |
HTTP请求与响应
组成和分析
请求包
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EXBsSf04-1618480946172)(C:\Users\Summer\AppData\Roaming\Typora\typora-user-images\image-20210414131930582.png)]
请求行:请求方法,请求路径,HTTP版本
HTTP请求方法
常用的:
GET,POST
GET与POST的区别
POST有请求内容,而GET方法没有(Request body部分为空)
提交参数的位置不同
在实际应用中,两者的安全性基本一致,都可能因链路劫持而出现参数泄露的情况。
链路劫持是由HTTP协议本身的特点所决定的,与请求方法没有任何关系。
在安全开发中,参数的命名应模糊,使得参数名称无法通过表面意思被理解,从而增加攻击者的分析难度。
响应包
Host | 被请求资源的Internet主机和端口号(80省略) |
Origin | 本次请求的发起源 |
Referer | 本次请求的发起页面(告诉Web服务器,用户是从哪个页面找过来的) |
User-Agent | 当前用户的操作系统、浏览器的基本信息(告诉Web服务器用户使用的浏览器和操作系统信息) |
Content-length | 当前请求包中的内容长度 |
Cookie | 表示请求者的身份 |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bEB9tzBo-1618480946174)(C:\Users\Summer\AppData\Roaming\Typora\typora-user-images\image-20210414133150900.png)]
Server | 与请求包中UA作用类似,将自身的版本告知对方 |
Set-cookie | 根据响应包生成cookie,并提供给客户端 |
URL
默认端口
http:80
https:443