当前位置: 首页 > news >正文

HTTP、HTTPS区别可靠性及POST为什么比GET安全的探讨

一、简述HTTP协议

HTTP底层是TCP实现,TCP是一个可靠的传输层网络协议,但是可靠性不是安全性——可靠但不安全

1、为什么TCP可靠?UDP不可靠?

可靠指的是源和目标可以相互访问以及确保数据的传输顺序,我能通过IP+端口访问你主机进程,你也能通过我提供的IP+端口访问我的主机进程,这样才算建立了可靠的连接,也是握手的过程。

而UDP是没有建立握手的,我能通过伪造一个IP去访问你,UDP是不关心对方是否是真实的目标IP,哪怕反向访问访问不到。

2、HTTP的请求

Http1.X它是单纯的文本格式请求,只能通过ascii码传输,其他字符比如汉字也会被转义成ascii的形式,比如"你好"会被转译成%E4%BD%A0%E5%A5%BD的ASCII码

它分为请求行请求头请求体三部分

POST /submit HTTP/1.1   -- 请求行
Host: example.com       -- 请求头
Content-Type: application/x-www-form-urlencoded charset=GBK

name=JohnDoe&age=30     -- 请求体

消息头后需要添加一个完全没内容的空行,然后才是消息体

可以看出我用的字符集是GBK,要是不指定的话用GBK编码,服务器如果不指定就会使用默认UTF-8去解码导致乱码

3.请求方和响应方确认字符集

我给你发消息用的UTF-8,我不告诉你,你不知道用什么解码,因为字符被变成Ascii形式了,需要通过字符集解码,默认的都是UTF-8

比如在请求和响应头中都携带如下信息,就可以双方都明确字符集

Content-Type: application/json; charset=UTF-8

4.请求头、响应头、实体头

请求头是请求时使用的,响应头是响应时用的,而实体头则是都可以使用的,比如请求和响应中都可以指定Content-Type等头信息;

当然也可以自定义头部信息,比如加个abc: 123456,但是这种自定义头只能客户端服务端自定义规则解析后什么作用,所以它可以是请求头、响应头也可以是实体头,你自由发挥。

POST /submit HTTP/1.1   
Host: example.com      
Content-Type: application/x-www-form-urlencoded charset=GBK
abc: 123456

name=JohnDoe&age=30     -- 请求体

二、HTTPS协议简述

1、如何变得安全

废话,加密不就变得安全了。

的确它在建立连接时和传输数据时分别进行了加密操作,建立连接时用了非对称加密,服务器通过证书机制去颁发给客户端,客户端拿到公钥后加密连接请求发给服务端,服务端用私钥可以解密,那么OK,安全连接已经建立。

流程草图:

2.公钥私钥、会话密钥

公钥私钥是在建立连接时用的非对称加密的方式

会话密钥是在建立完连接后,后续都使用对称加密进行数据的客户端加密,服务端解密用

(对称加密就是加密解密密钥相同;非对称加密就是分公钥私钥,公钥交给用户,私钥不做公开,公钥加密的数据只能私钥解密,私钥加密的东西只能公钥解密,公钥加密的东西是用公钥解密不了的,相当于你和你朋友都有锁头,但是钥匙是交换的,你自己无法打开自己那把锁)

三、POST为什么比GET安全?

1.GET请求和POST的本质区别

GET请求是消息体不携带参数

POST是消息体携带参数

2.安全只是相对的,POST也不安全

由于GET请求是把参数加在消息行上,代理服务器、浏览器、服务器日志可能都会留下痕迹,因为它们大多数都会保留请求行,但是请求体的数据除非特殊设定,不然一般不会去存储它们,但是HTTPS形式下,请求会被全部加密,这种安全性和GET、POST无关,与其纠结GET、POST谁安全,不如上HTTPS。

相关文章:

  • 结构风荷载理论与Matlab计算
  • Linux后台启动命令nohup并且MobaXterm后台启动断网也不关闭软件
  • 《探秘DeepSeek优化器:解锁模型训练的高效密码》
  • nodejs及搭建
  • 零基础用AI—AI伦理风险防控的十大核心策略与全球协同治理实践
  • 文章学习---经颅聚焦超声刺激(TUS)对灵长类动物大脑皮层激活的影响
  • SOME/IP--协议英文原文讲解6
  • Centos7 使用 yum 报错 Could not retrieve mirrorlist
  • Nmap:网络扫描与安全评估的多功能工具
  • leetcode4:寻找两个正序数组的中位数
  • 双非一本电子信息专业自学嵌入式,学完 Linux 后咋走?单片机 FreeRTOS 要补吗?
  • Elasticsearch7.6.2 安装过程
  • 论文笔记:How Much Can Time-related Features Enhance Time Series Forecasting?
  • python-leetcode 35.二叉树的中序遍历
  • 代码随想录算法训练营Day51
  • 【Go语言快速上手】第二部分:Go语言进阶之并发编程
  • 新手向:SpringBoot后端查询到数据,前端404?(附联调时各传参方式注解总结-带你一文搞定联调参数)
  • golang panic原理
  • 解锁大数据治理:开启数据驱动的新时代
  • 图片粘贴上传实现
  • 五一假期前两日,多地党政主官暗访景点、商圈安全工作
  • 对谈|“对工作说不”是不接地气吗?
  • 巴菲特股东大会前瞻:执掌伯克希尔60年,巨轮将驶向何方
  • 5月人文社科中文原创好书榜|巫蛊:中国文化的历史暗流
  • “80后”商洛市委副书记、市政府党组副书记赵孝任商洛市副市长
  • 白玉兰奖征片综述丨国产剧集创作的此消彼长