【Linux】HTTP协议 HTTPS协议

jsoncpp库的安装使用
sudo yum install jsoncpp-devel
在这里插入图片描述
使用jsoncpp包含头文件<jsoncpp/json/json.h>
Makefile要添加链接jsoncpp库的选项-ljsoncpp

HTTP协议

应用层:通俗说就是程序员在socket接口之上编写的具体逻辑,其中很多工作都是和文本处理有关的(协议分析与处理)。
所以http协议,也就是超文本传输协议,也一定会存在大量的文本分析和协议处理。

协议名称://服务器IP[:端口号]/web根目录

在这里插入图片描述
如果用户想在URL中包含URL本身就用来作为特殊字符的字符,URL形成的时候,浏览器会自动进行编码(encode)。
在这里插入图片描述
所以,服务端收到这样的请求之后,一般都需要进行特殊字符的转回(decode)。

http协议作为应用层的协议,底层所采用的是TCP协议。

http的请求和响应的报文格式,单纯从报文的角度,http可以看作是基于行的文本协议。
在这里插入图片描述
http request的协议版本用于告诉server端,client端用的协议版本;而http response的协议版本用于告诉client端,server端用的协议版本。
http是如何区分报头和有效载荷的呢?
是通过空行的方式来区分的。

我们平时的上网行为无非就两种:
a.从服务端拿取数据 — GET
b.把数据从客户端进行提交 — POST, GET

GET方法通过URL传参,会回显输入的私密信息,进而不够私密;
POST方法通过正文提交参数,不会进行回显,一般而言私密性是有保证的。
对数据进行加密和解密才是安全性上的问题。
HTTP协议还有很多方法,但最常用也就是GET和POST方法了。

HTTP协议的状态码主要分为以下五类:

错误码类别状态类别原因解释
1XXInformational(信息性状态码)接收的请求正在处理
2XXSuccess(成功状态码)请求正常处理完成
3XXRedirection(重定向状态码)需要进行附加操作以完成请求
4XXClient Error(客户端错误状态码)服务器无法处理请求
5XXServer Error(服务器错误状态码)服务器处理请求出错

永久重定向301 vs 临时重定向302
临时重定向:不影响用户后续的请求策略
永久重定向:会影响用户后续的请求策略
在这里插入图片描述
HTTP协议特征:简单快速,无连接,无状态

HTTPS协议

HTTPS协议是在HTTP协议的基础上引入了一个加密层。
HTTP协议的内容都是按照文本的方式明文传输的,所以当明文数据经过路由器等中间设备传输时,一旦被劫持,传输的内容也就完全被暴露出来了,劫持者甚至可以在不被客户端和服务器双方察觉的情况下进行信息的篡改,这就是所谓的中间人攻击。所以对传输的信息进行加密是必须的。

  1. 什么是加密
    所谓加密就是把明文进行一系列变换,生成密文;
    解密就是把密文再进行一系列的变换,还原成明文;
    在这个加密和解密的过程中,需要密钥来辅助这一系列的转换。
  2. 常见加密方式
  • 对称加密
    对称加密的特征就是:加密和解密所用的秘钥是相同的。
    也就是同一个密钥可以用作信息的加密和解密。
    对称加密其计算量小,加密速度快,加密效率高。
  • 非对称加密
    需要两个密钥来进行加密和解密。这两个密钥就是公开密钥(公钥)和私有密钥(私钥)。
    通过公钥对明文加密,可以变成密文;通过私钥对密文解密,可以变成明文;
    也可以反过来用,
    通过私钥对明文加密,可以变成密文;通过公钥对密文解密,可以变成明文。
    非对称算法其算法强度复杂,加密解密速度比对称加密解密要慢很多。
  1. 数据摘要(数据指纹) & 数字签名
    数据摘要(数据指纹),其基本原理就是利用单向散列函数(Hash函数)对信息进行运算,生成一串固定长度的数字摘要。这并不是一种加密机制,但可以用来判断数据有没有被篡改过,通常用来进行数据对比。
    MD5就是常见的摘要算法。
    数据摘要经过加密,就得到了数字签名。
  2. CA证书
    服务端在能使用HTTPS协议前,需要向CA机构申领一份数字证书,这份证书就如同身份证一样,向客户端浏览器证明服务端公钥的权威性。
    当服务端申领CA证书的时候,CA机构会对服务端进行审核,并专门为该网站形成数字签名,过程如下:
  • CA机构拥有非对称加密的公钥A和私钥A’
  • CA机构对服务端申请的证书明文数据进行hash,形成数据摘要
  • 然后对数据摘要用私钥A’加密,得到数字签名
    服务端申请的证书明文和数字签名共同组成了数字证书,这样一份数字证书就是服务端所申请的CA证书了。

HTTPS协议的加密层正是通过非对称加密+对称加密+CA认证来完成的。

在这里插入图片描述
在这里插入图片描述
所以,HTTPS协议工作过程涉及到的密钥有三组:

  • 第一组是非对称加密密钥,用于校验证书是否被篡改;
  • 第二组是非对称加密密钥,用于协商生成对称加密的密钥;
  • 第三组是对称加密密钥,用于后续客户端和服务器传输数据时进行对称密钥的加密解密。

其实这一切的关键都是围绕这个对称加密的密钥展开的:
第一组非对称加密的密钥是为了让客户端拿到第二组非对称加密的公钥;
第二组非对称加密的密钥是为了让客户端把这个对称密钥传给服务器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/564245.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

input子系统开发

一、input子系统基本框架 Linux内核为了两个目的&#xff1a; 简化纯输入类外设&#xff08;如&#xff1a;键盘、鼠标、游戏杆、轨迹球、触摸屏。。。等等&#xff09;的驱动开发 统一输入类外设产生的数据格式&#xff08;struct input_event&#xff09;&#xff0c;更加方…

YoloV8改进策略:BackBone改进|PKINet

摘要 PKINet是面向遥感旋转框的主干,网络包含了CAA、PKI等模块,给我们改进卷积结构的模型带来了很多启发。本文,使用PKINet替代YoloV8的主干网络,实现涨点。PKINet是我在作者的模型基础上,重新修改了底层的模块,方便大家轻松移植到YoloV8上。 论文:《Poly Kernel Ince…

导师坚鹏:厦门火炬高新区数字化转型战略蓝图从规划到落地培训

厦门火炬高新区战略制胜&#xff1a;数字化转型战略蓝图从规划到落地培训 厦门国家火炬高技术产业开发区&#xff08;简称“厦门国家火炬高新区”&#xff09;1991年被国务院批准为全国首批国家级高新区&#xff0c;是全国三个以“火炬”冠名的国家高新区之一。目前&#xff0c…

Django下载使用、文件介绍

【一】下载并使用 【1】下载框架 &#xff08;1&#xff09;注意事项 计算机名称不要出现中文python解释器版本不同可能会出现启动报错项目中所有的文件名称不要出现中文多个项目文件尽量不要嵌套,做到一项一夹 &#xff08;2&#xff09;下载 Django属于第三方模块&#…

模拟-算法

文章目录 替换所有的问号提莫攻击Z字形变换外观数列数青蛙 替换所有的问号 算法思路&#xff1a; 从前往后遍历整个字符串&#xff0c;找到问号之后&#xff0c;就遍历 a ~ z 去尝试替换即可。 class Solution {public String modifyString(String s) {char[] ss s.toCharA…

Java代码基础算法练习-公式求和-2024.03.24

任务描述&#xff1a; 求公式Snaaaaaa…aa…aaa&#xff08;有n个a&#xff09;之值&#xff0c;其中a是一个数字&#xff0c;为2。 例如&#xff0c;n5 时222222222222222&#xff0c;n 由键盘输入(n<5)。 任务要求&#xff1a; package march0317_0331;import java.util.…

新能源汽车充电桩消防安全视频智能可视化监管建设方案

一、方案背景 据应急管理部门统计公布的数据显示&#xff0c;仅2023年第一季度&#xff0c;新能源汽车自燃率就上涨了32%&#xff0c;平均每天就有8辆新能源汽车发生火灾&#xff08;含自燃&#xff09;。在已查明起火原因中&#xff0c;58%源于电池问题&#xff0c;19%源于碰…

服务消费微服务

文章目录 1.示意图2.环境搭建1.创建会员消费微服务模块2.删除不必要的两个文件3.检查父子模块的pom.xml文件1.子模块2.父模块 4.pom.xml 添加依赖&#xff08;刷新&#xff09;5.application.yml 配置监听端口和服务名6.com/sun/springcloud/MemberConsumerApplication.java 创…

ppp实验

拓扑图 实验步骤 配置IP地址及创建mp逻辑口 [R1]int ser 3/0/0 [R1-Serial3/0/0]ip add 192.168.1.1 24 [R1-Serial3/0/0] [R2]int se3/0/0 [R2-Serial3/0/0]ip add 192.168.1.2 24 [R2-Serial3/0/0]int mp [R2-Serial3/0/0]int mp-g [R2-Serial3/0/0]int mp-group 0…

matlab 智能电器的状态监测故障模拟

1、内容简介 略 83-可以交流、咨询、答疑 2、内容说明 略 U120√2sin(2) Ii1i2 逻辑关系&#xff1a; 在0-0.1&#xff0c;正弦电给并联的电容和电阻/电感供电&#xff0c;电压的有效值为120V,通过RMS模块检查电压的变化&#xff0c;在0.1时通过斩波器把电源2端与大地连接…

【投递】2023秋招与2024春招部分投递(私企,国企,外企,编制,升学等)

文章目录 1、互联网私企&#xff08;钱多&#xff09;2、国企 & 外企&#xff08;事少&#xff09;3、公务员 & 事业编&#xff08;离家近&#xff09;4、考研 & 留学&#xff08;下限&#xff09;5、创业 & 做生意&#xff08;上限&#xff09; 什么是舒适的工…

Java 自定义线程池实现

自定义线程池 简介任务图示阻塞队列 BlockingQueue<T>ReentrantLock代码 线程池 ThreadPool工作线程类 Worker 拒绝策略接口代码测试类 TestThreadPool为什么需要j i&#xff1f;&#xff08;lambad表达式相关&#xff09; 测试结果拒绝策略&#xff1a;让调用者自己执行…