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

news2024/11/26 20:44:09

一、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.coloradmin.cn/o/1287204.html

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

相关文章

PWM控制器电路D9741,定时闩锁、短路保护电路,输出基准电压(2.5V) 采用SOP16封装形式

D9741是一块脉宽调制方三用于也收路像机和笔记本电的等设备上的直流转换器。在便携式的仪器设备上。 主要特点:● 高精度基准电路 ● 定时闩锁、短路保护电路 ● 低电压输入时误操作保护电路 ● 输出基准电…

运维知识点-PostgreSql

PostgreSql 下载安装地址安装组件数据目录设置superuser密码 端口安装语言安装完成,是否安装Stack Builder 下载 https://www.postgresql.org/download/windows/ https://get.enterprisedb.com/postgresql/postgresql-13.7-1-windows-x64.exe 我下载的 13.7 安装…

揭秘接口测试的必备基础知识!

这一篇讲接口测试的基础,如果你还在做手工测试,你可以从这里开始入门,做接口测试是最容易的一种自动化测试。 一、接口测试是什么 首先要理解接口测试就是测接口,如图所示: 让我们以数据驱动的视角来看接口测试&#…

内网协议区别

今天面试的时候被面试官问到内网隧道技术中的协议有什么区别,平时只注重使用不注重原理,学习记录 2023-11-30 网络层:IPV6 隧道、ICMP 隧道、GRE 隧道 传输层:TCP 隧道、UDP 隧道、常规端口转发 应用层:SSH 隧道、HTTP…

Java-宋红康-(P133-P134)-多线程创建方式(Thread and Runnable)

b站视频 133-多线程-线程创建方式1:继承Thread类_哔哩哔哩_bilibili 目录 3.1 继承Thread 3.1.1 继承Thread类方式 3.1.2 线程的执行流程 3.1.3 线程内存图 3.1.4 run()方法和start()方法 3.1.5 线程名字的设置和获取 3.1.6 获取运行main方法线程的名字 3.…

双列集合 Map常见的API Map遍历方式 HashMap LinkedHashMap treeMap

目录 双列集合双列集合的特点 双列集合体系结构Map常见的APIMap遍历方式Map的遍历方式一(键找值)遍历方式二键值对遍历方式三lambda表达式 HashMap练习1练习二LinkedHashMapTreeMapTreeMap练习1二三 双列集合 双列集合可以记录两个元素.一个称为键一个称为值.合称为键值对,又叫…

centos7防火墙开启端口

1.查看防火墙状态 firewall-cmd --state如果返回的not running,那么需要先开启防火墙 2.开启关闭防火墙 systemctl start firewalld.service systemctl stop firewalld.service systemctl restart firewalld.service3.开放指定端口 firewall-cmd --zonepublic -…

支持Upsert、Kafka Connector、集成Airbyte,Milvus助力高效数据流处理

Milvus 已支持 Upsert、 Kafka Connector、Airbyte! 在上周的文章中《登陆 Azure、发布新版本……Zilliz 昨夜今晨发生了什么?》,我们已经透露过 Milvus(Zilliz Cloud)为提高数据流处理效率, 先后支持了 Up…

利大于弊:物联网技术对电子商务渠道的影响

For Better or For Worse: Impacts of IoT Technology in e-Commerce Channel 物联网技术使用传感器和其他联网设备来手机和共享数据,并且被视为一种可以为供应链成员带来巨大的机会的突破性技术。本文的研究背景是:一个提供物联网基础设备的电子商务平…

【问题总结】Docker环境下,将Nacos版本2.0.4升级到2.2.3,操作留档 以及 踩坑记录

前记,鉴于nacos暴露的验证鉴权bug(之前尝试解决但是没有完全解决!,需要对公司之前架构留下来的老版本nacos进行升级 参考资料: https://nacos.io/zh-cn/blog/announcement-token-secret-key.html https://nacos.io/…

LLM之Agent(四)| AgentGPT:一个在浏览器运行的Agent

AgentGPT是一个自主人工智能Agent平台,用户只需要为Agent指定一个名称和目标,就可以在浏览器中链接大型语言模型(如GPT-4)来创建和部署Agent平台。 PS:目前agentGPT仅支持chatgpt模型,暂时不支持本地llm模…

AI生成视频-Pika

背景介绍 Pika 是一个使用 AI 生成和编辑视频的平台。它致力于通过 AI 技术使视频制作变得简单和无障碍。 Pika 1.0 是 Pika 的一个重大产品升级,包含了一个新的 AI 模型,可以在各种风格下生成和编辑视频,如 3D 动画,动漫,卡通和电影风格。…

香港云服务器计算型和通用型的区别

在当今数字化时代,云服务器作为企业级应用的核心设备,其性能和类型对于企业的运营和数据处理至关重要。在常见的香港云服务器类型中,通用型和计算型是最为常见的两种。那么,这两种云服务器到底有什么区别呢? 设计目标和应用场景不…

【4】PyQt输入框

1. 单行文本输入框 QLineEdit控件可以输入单行文本 from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QVBoxLayout from PyQt5.QtCore import * from PyQt5.QtGui import QIcon import sysdef init_widget(w: QWidget):# 修改窗口标题w.setWindowTitle(单行输…

Object Detection in 20 Years: A Survey(2019.5)

文章目录 Abstract1. Introduction1.1. Difference from other related reviews1.2. Difficulties and Challenges in Object Detection 2. OBJECT DETECTION IN 20 YEARS2.1. 目标检测路线图2.1.1. 里程碑:传统探测器(粗略了解)2.1.2. 里程碑:基于CNN的…

新华三数字大赛复赛知识点 SSH

SSH作用、特点、原理、配置 SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录和文件传输方式,例如Telnet、FTP,使用明文传输数据&#xff…

【Erlang进阶学习】1、递归和模式匹配

在erlang程序开发中,模式匹配和递归是很重要的两种操作,说他俩是平时开发工作中的两个“核心”也不为过。 1、递归:用来迭代或重复某种行为,效果类比for循环。 2、模式匹配:在erlang程序中,大量的使用到“…

华容道问题求解第一部分_思路即方案设计

一、前言 华容道是一种传统的益智游戏,通常由一个长方形木板和若干个方块组成。其中包括一个或多个不同颜色的方块(也称为车块)和其他大小相同的方块(也称为障碍块)。游戏的目标是将车块从木板的一个端点移动到另一个…

深度学习在计算机视觉中的应用

深度学习在计算机视觉中的应用 摘要:本文介绍了深度学习在计算机视觉领域的应用,包括目标检测、图像分类、人脸识别等。通过分析深度学习在计算机视觉中的实际应用案例,阐述了深度学习在计算机视觉中的优势和未来发展趋势。 一、引言 计算…

【go-zero】go-zero使用ent框架 如何使用源生sql完成查询

背景 本篇教程我们采用的是go-zero的快速脚手架工具 simple-admin 框架的开发 github地址:https://github.com/suyuan32/simple-admin-core 因为框架推荐使用Ent 这篇教程我们则对Ent的基本使用的几种形式进行一个总结 一、开启ent的源生sql 1、simple-admin生成rpc 【go-…