目录
post用bady传输数据,get用url传输数据,但这并不能说get就是比post安全的。
在浏览器地址栏可以看到使用get请求明文传输的数据,看不到post请求传输的数据,但是只要抓个包就能获取到body中的数据。
(常用的网络抓包和分析工具:tcpdump 和 Wireshark)
所以,要避免传输过程中数据被窃取,就要使用 HTTPS 协议,这样所有 HTTP 的数据都会被加密传输。
HTTP协议以明文方式发送内容,不提供任何方式的数据加密。
HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
https则是具有安全性的ssl加密传输协议。
HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。并且https协议需要到ca申请证书。
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
HTTPS 就是在 HTTP网络层 与 TCP 层之间增加了 SSL/TLS 安全传输层。
HTTP连接建立的相对简单,TCP三次握手之后便可进行HTTP的报文传输,而HTTPS在TCP三次握手之后,还需要进行SSL/TLS的握手过程,才可以进入加密报文传输。
HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。
1. 简单
HTTP 基本的报文格式就是 header + body,头部信息也是 key-value 简单文本的形式,易于理解,降低了学习和使用的门槛。
2. 灵活和易于扩展
HTTP 协议里的各类请求方法、URI/URL、状态码、头字段等每个组成要求都没有被固定死,都允许开发人员自定义和扩充。
同时 HTTP 由于是工作在应用层( OSI 第七层),则它下层可以随意变化,比如:
3. 应用广泛和跨平台
互联网发展至今,HTTP 的应用范围非常的广泛,从台式机的浏览器到手机上的各种 APP,从看新闻、刷贴吧到购物、理财、吃鸡,HTTP 的应用遍地开花,同时天然具有跨平台的优越性。
http/1.0每发起一个请求,就需要新建一次tcp连接,增加了通信开销。
http/1.1提出了长连接,好处是减少了tcp连接的重复建立和断开所造成的额外开销,减轻了服务器的负载。
HTTP/1.1提出了长连接的通信方式,也叫做持久连接,减少了TCP连接的重复建立和断开造成的额外开销,减轻了服务器的负载。
持久连接特点:只要任意一端没有明确提出断开连接,则保持TCP连接状态。
HTTP/1.1采用了长连接的方式,使得管道网络传输成为可能。
只是HTTP/1.1管道化技术不是默认开启,而且浏览器基本都没有支持。
队头阻塞:当顺序发送的请求序列中的一个请求因为某种原因被阻塞的时候,在后面排队的所有请求也一同被阻塞了,会招致客户端一直请求不到数据,也就是队头阻塞。
?