了解应用层的HTTP协议与HTTPS协议,在常规请求的应用中Get与Post的区别

一、HTTP协议

  • 1、http协议的特性
  • 2、http协议的请求
    • 请求行
      • GET请求
      • POST 请求(人脸识别方案)
      • 两个请求的区别
      • 本质区别:
        • (1)url 携带的参数是否可见:
        • (2)参数传递方式
        • (3)缓存性
        • (4)页面后退的反应
        • (5)传输数据的大小
        • (6)安全性
    • 请求头
    • 请求主体
  • 3、http协议的响应
    • 响应行
    • 响应头
    • 响应主体

二、 HTTPS协议

  • 1、简介与原理
  • 2、密码学基础
    • 明文与密文
    • 密钥
      • 对称加密(私钥+私钥)
      • 非对称加密(公钥+私钥)

三、HTTPS相对于HTTP优缺点

  • 优点:正确率更高,安全性更强
  • 缺点:效率低,成本高

http协议
接口测试中的Get与Post的区别是什么?
状态码:http协议中各个响应状态200_301_404_500等返回值含义快速一览

一、HTTP协议

重点了解GET请求和POST请求,以及他们的区别。

1、http协议的特性

http协议是建立在TCP/IP协议之上应用层协议,默认端口为80或者8080

http协议的的特点是无状态,短连接

2、http协议的请求

利用抓包工具httpwatch可以获取报文,多见于前端,后端用于分析数据传输过程中产生的问题

http协议的报文传输的是ASCII码,在TCP/IP协议之上,主要主要分为三部分:

请求行

浏览器向服务器发送的,在第一行,包含:

  • 请求方式(GET请求、POST请求)
  • url(网址)
  • http协议版本
GET请求

例如:
在这里插入图片描述
请求方式是GET请求,url 携带的参数可见,http协议版本是1.1

POST 请求(人脸识别方案)

例如:请添加图片描述
请求方式为POST请求,url携带的参数不可见,协议版本是1.1

两个请求的区别
本质区别:

GET产生一个TCP数据包;POST产生两个TCP数据包。

对于GET方式的请求,浏览器会把 http header 和 data 一并发送出去,服务器响应200(返回数据);
对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送 data,服务器响应200 ok(返回数据)。

(1)url 携带的参数是否可见:
  • get,url 携带的参数可见

例如:

var url = 'http://192.168.1.40:8080/v1/sea?page=1&per_page=10' + 'search=' + escape(str)

参数用 & 符号进行连接,被当做参数的分隔符来进行处理。上面就两个参数。
page=1,per_page=10

  • post,url 携带的参数不可见
    有参数,但被隐藏起来了,可以通过抓包查看这个参数。
(2)参数传递方式
  • get,通过请求行拼接url进行传递参数

  • post,通过请求主体传输参数

(3)缓存性
  • get 请求是可以缓存的

  • post 请求不可以缓存

(4)页面后退的反应
  • get 请求页面后退时,不产生影响(因为有缓存)

  • post 请求页面后退时,会重新提交请求(没有缓存)

(5)传输数据的大小
  • get 一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大)

  • post 请求传输数据的大小根据 php.ini 配置文件设定,也可以无限大

(6)安全性

这个也是最不好分析的,原则上 post 肯定要比 get 安全,毕竟传输参数时 url 不可见,但也挡不住部分人闲的没事在那抓包玩。安全性个人觉得是没多大区别的,对传递的参数进行加密,其实都一样。

请求头

浏览器向服务器发送一些状态数据,标识数据等等

一个信息一行,包括信息名:信息值,按行分隔。

User-Agent: firefox//表示发送请求的浏览器(请求代理端)是firefox
Host: shop.100.com//表示请求的主机域名(基于域名的虚拟主机就是靠这个头判断的)
Cookie:name=itcast//浏览器携带的cookie数据。
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Connection: Keep-Alive

注意,请求头信息,需要使用一个空行结束!

请求主体

请求代理端向服务器端,发送的请求数据!

典型的就是POST形式发送的表单数据

get请求,没有请求主体部分!get数据是在请求行中的url上进行传递的!

3、http协议的响应

HTTP/1.1 200 ok
Date: Tue,19 Nov 2013 03:08:55 GMT
Server: Apache/2. 2.22 (Win32) PHP/5.3. 13
X- -Powered -By: PHP/5. 3.13
Content-Length: 16
Content- Type: text/html

响应行

响应行包括:协议版本、状态码、状态消息。典型的:

1xx:消息
2xx:成功
3xx:请求被重定向
4xx:浏览器端错误
5xx:服务器端错误

响应头

Date:响应的时间。GMT时间!
Content-Length: 响应主体数据的长度!
Content-Type: text/html :内容类型:告知浏览器接下来发送的响应主体数据是什么格式!

响应主体

主要的响应数据,在浏览器的主体区域显示的数据都是相应主体!(前端人员通过html和css技术实现的排版,对于C语言来说拿到的就是一段ASCII码、一段字符串)

注意,每行,包括相应行和响应头,都需要一个 \r\n 结尾

二、 HTTPS协议

1、简介与原理

http协议是明文传输的,因此很容易被截取和解析,泄漏个人数据。
https协议是在 http 和 tcp 之间多添加了一层加密SSL,进行身份验证和数据加密

2、密码学基础

明文与密文

明文: 明文指的是未被加密过的原始数据
密文: 明文被某种加密算法加密之后,会变成密文,从而确保原始数据的安全。密文也可以被解密,得到原始的明文。

密钥

密钥:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数

密钥分为对称密钥与非对称密钥,分别应用在对称加密和非对称加密上。

对称加密(私钥+私钥)

对称加密:对称加密又叫做私钥加密,即信息的发送方和接收方使用同一个密钥去加密和解密数据。

对称加密的特点是算法公开、加密和解密速度快,适合于对大数据量进行加密,常见的对称加密算法有DES、3DES、TDEA、Blowfish、RC5和IDEA。

其加密过程如下:明文 + 加密算法 + 私钥 => 密文
解密过程如下: 密文 + 解密算法 + 私钥 => 明文

对称加密中用到的密钥叫做私钥,私钥表示个人私有的密钥,即该密钥不能被泄露。

其加密过程中的私钥与解密过程中用到的私钥是同一个密钥,这也是称加密之所以称之为“对称”的原因。

由于对称加密的算法是公开的,所以一旦私钥被泄露,那么密文就很容易被破解,所以对称加密的缺点是密钥安全管理困难

非对称加密(公钥+私钥)

非对称加密:非对称加密也叫做公钥加密

非对称加密使用一对密钥,即公钥和私钥,且二者成对出现。私钥被自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密,用另一个进行解密。

(1)被公钥加密过的密文只能被私钥解密,过程如下:
明文 + 加密算法 + 公钥 => 密文, 密文 + 解密算法 + 私钥 => 明文
(2)被私钥加密过的密文只能被公钥解密,过程如下:
明文 + 加密算法 + 私钥 => 密文, 密文 + 解密算法 + 公钥 => 明文

由于加密和解密使用了两个不同的密钥,这就是非对称加密“非对称”的原因。

非对称加密的缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。

在非对称加密中使用的主要算法有:RSA、Elgamal、Rabin、D-H、ECC(椭圆曲线加密算法)等。

这些算法不用亲自去写,已经成为一种标准,有现成的库去调用实现即可。

三、HTTPS相对于HTTP优缺点

优点:正确率更高,安全性更强

使用 HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器 ;

HTTPS 协议是由 SSL + HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 HTTP 协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性 。

HTTPS 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本 。

缺点:效率低,成本高

相同网络环境下,HTTPS 协议会使页面的加载时间延长近 50%,增加 10%到 20%的耗电。

HTTPS 协议还会影响缓存,增加数据开销和功耗 。

HTTPS 协议的安全是有范围 中间人攻击 伪造证书

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

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

相关文章

【Maven】清理 maven 仓库

初始情况下,我们的本地仓库是没有任何jar包的,此时会从私服去下载(如果没有配置,就直接从中央仓库去下载)。 可能由于网络的原因,jar包下载不完全,这些不完整的jar包都是以lastUpdated结尾。此…

JVM arthas下载工具

工具下载地址 链接:https://pan.baidu.com/s/1qkn9HabhuwTiwbKVQ7BXnA?pwdv5ww 提取码:v5ww 启动语句 java -jar arthas-boot.jar输入你的线程,这里是2 dashboardJVM优化 堆的初始大小 最大大小 年轻代的大小 线程栈大小 新生代、伊甸…

娱乐类直播平台

娱乐类直播是一种以娱乐为主要内容的直播形式,包括音乐、舞蹈、游戏、搞笑、访谈等。这种直播形式通常由主播在平台上进行表演,吸引观众的关注和互动。 在娱乐类直播中,主播通常会通过展示自己的才艺、技能或者与观众进行互动来吸引关注。一…

vue-cli创建项目运行报错this[kHandle] = new _Hash(algorithm, xofLen);(完美解决)

1:问题出现的原因 出现这个问题是node.js 的版本问题,因为 node.js V17开始版本中发布的是OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在使用 nodejs V17以上版本后会报错。…

flask web学习之flask与http(一)

文章目录 一、请求响应循环二、HTTP请求1. 请求报文2. request对象3. 在flask中处理请求3.1 路由匹配3.2 设置监听的http方法3.3 URL处理 三、请求钩子 一、请求响应循环 每一个web应用都包含这种处理方式,请求-响应循环:客户端发出请求,服务…

rvos 3编译与链接

做下面的两个练习需要: 在vmvb上装一个ubuntu会gcc、vi的基本使用 用vi写一个hello.cgcc -o hello.creadelf -h hello.oreadelf -S hello.oobjdump -S hello.o 用vi编辑一个test.cgcc -c test.creadelf -S test.o.text:代码 .data:初始化的全局变量和静态变量…

MYSQL练题笔记-高级查询和连接-连续出现的数字

一、题目相关内容 1)相关的表和题目 2)帮助理解题目的示例,提供返回结果的格式 二、自己初步的理解 其实这一部分的题目很简单,但是没啥思路啊,怎么想都想不通,还是看题解吧,中等题就是中等题…

openEuler 22.03 升级openssh9.5

yum安装编译依赖的组件 yum install -y rpm-build gcc gcc-c glibc glibc-devel openssl-devel openssl pcre-devel zlib zlib-devel make wget krb5-devel pam-devel libX11-devel libXt-devel initscripts libXt-devel gtk2-devel lrzsz建立编译目录 mkdir -pv /root/rpm…

分布式ID服务实践

背景 分布式场景下需要一个全局 ID 来标识唯一性,比如在单数据库时通过表唯一主键即可实现唯一 ID,分库分表时就需要全局唯一 ID。 业务对唯一 ID 的要求如下: 全局唯一性 不能出现重复的 ID 号,既然是唯一标识,这…

Kubernetes(K8s)安全认证-10

安全认证 访问控制概述 Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作。 客户端 在Kubernetes集群中,客户端通常有两类: User Acco…

线程池,及7大参数,4大拒绝策略详解

线程池,及7大参数,4大拒绝策略详解 1. 前言 1.1 什么是线程池? 线程池是一种利用池化技术思想来实现的线程管理技术,主要是为了复用线程、便利地管理线程和任务、并将线程的创建和任务的执行解耦开来。我们可以创建线程池来复用…

【4】密评-网络和通信安全测评

0x01 依据 GB/T 39786 -2021《 信息安全技术 信息系统密码应用基本要求》针对等保三级系统要求: 网络和通信层面: a)应采用密码技术对通信实体进行身份鉴别,保证通信实体身份的真实性; b)宜采用密码…

【数电笔记】07-基本和复合逻辑运算

目录 说明: 基本逻辑运算 1. 与运算 (and gate) 2. 或运算 (or gate) 3. 非运算 (not gate ) 复合逻辑运算 1. 与非运算(nand) 2. 或非运算(nor&…

用 taichi 写个软渲染器

用 taichi 写个软渲染器 What 起点是:可以 setup 一个画布,drawPixel(x, y, color),然后渲染到 GUI 或者 .png目标是:加载 obj 模型文件和 .tga 贴图文件,并渲染出来使用 taichi 作为 SIMD 加速 backend复现一些 RTR…

leetcode:统计感冒序列的数目【数学题:组合数含逆元模版】

1. 题目截图 2.题目分析 需要把其分为多个段进行填充 长为k的段,从两端往中间填充的方案数有2 ** (k - 1)种 组合数就是选哪几个数填哪几个段即可 3.组合数含逆元模版 MOD 1_000_000_007 MX 100_000# 组合数模板 fac [0] * MX fac[0] 1 for i in range(1, MX…

伯俊软件CTO陈雨陆:R3全渠道业务中台的OceanBase落地实践

11 月 16 日,OceanBase 在京顺利举办 2023 年度发布会,正式宣布:将持续践行“一体化”产品战略,为关键业务负载打造一体化数据库。其中,“数字化转型升级实践专场”我们有幸邀请到伯俊软件 CTO 陈雨陆进行《OceanBase …

从Intel Cyclone10GX TransceiverPHY 高速收发器认识ATX PLL、FPLL、CMU PLL等PLL

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 在使用Intel Cyclone10GX TransceiverPHY的过程中发现这个IP还是比较复杂的,特别是时钟系统,提到了多种PLL:ATX PLL、FPLL、CMU PLL,这里进行一下扩展学…

用友U8 Cloud RegisterServlet SQL注入漏洞复现

0x01 产品简介 用友U8 Cloud是用友推出的新一代云ERP,主要聚焦成长型、创新型企业,提供企业级云ERP整体解决方案。 0x02 漏洞概述 用友U8 Cloud RegisterServlet接口处存在SQL注入漏洞,未授权的攻击者可通过此漏洞获取数据库权限,从而盗取用户数据,造成用户信息泄露。 …

搭建React项目,基于Vite+React+TS+ESLint+Prettier+Husky+Commitlint

基于ViteReactTSESLintPrettierHuskyCommitlint搭建React项目 node: 20.10.0 一、创建项目 安装包管理器pnpm npm i pnpm -g基于Vite创建项目 pnpm create vitelatest web-gis-react --template react-ts进入项目目录安装依赖 $ cd web-gis-react $ pnpm i启动项目 $ pnpm…

Python的海龟 turtle 库使用详细介绍(画任意多边形,全网最详细)

学Turtle库,其实就是学数学,而且还能提高对数学和学习的兴趣。Turtle库还能够帮助孩子更好地理解几何学和数学概念,比如角度、比例、几何图形的性质等等,是Python中一个很有趣的库。 前言 Turtle库是Python中一个很有趣的库&…