HTTP协议简介,数据安全 如何保证http传输安全性,http与https区别

2023-11-19

目前大多数网站和app的接口都是采用http协议,但是http协议很容易就通过抓包工具监听到内容,甚至可以篡改内容,为了保证数据不被别人看到和修改,可以通过以下几个方面避免。

重要的数据,要加密,比如用户名密码,我们需要加密,这样即使被抓包监听,他们也不知道原始数据是什么(如果简单的md5,是可以暴力破解),所以加密方法越复杂越安全,根据需要,常见的是 md5(不可逆),aes(可逆),自由组合吧,你还可以加一些特殊字符啊,没有做不到只有想不到, 举例:username = aes(username), pwd = MD5(pwd + username);。。。。。

非重要数据,要签名,签名的目的是为了防止篡改,比如http://www.xxx.com/getnews?id=1,获取id为1的新闻,如果不签名那么通过id=2,就可以获取2的内容等等。怎样签名呢?通常使用sign,比如原链接请求的时候加一个sign参数,sign=md5(id=1),服务器接受到请求,验证sign是否等于md5(id=1),如果等于说明正常请求。这会有个弊端,假如规则被发现,那么就会被伪造,所以适当复杂一些,还是能够提高安全性的。

登录态怎么做,http是无状态的,也就是服务器没法自己判断两个请求是否有联系,那么登录之后,以后的接口怎么判定是否登录呢,简单的做法,在数据库中存一个token字段(名字随意),当用户调用登陆接口成功的时候,就将该字段设一个值,(比如aes(过期时间)),同时返回给前端,以后每次前端请求带上该值,服务器首先校验是否过期,其次校验是否正确,不通过就让其登陆。(redis 做这个很方便哦,key有过期时间)

 

aes:https://blog.csdn.net/qq_28205153/article/details/55798628

2、http与https区别

区别:
1、加密:http协议对传输的数据不进行加密;https协议对传输的数据使用SSL安全协议进行加密,https加密需要CA签发的证书。 
2、端口:http协议使用TCP的80端口;https协议使用TCP的443端口 
3、网络分层模型:http可以明确是位于应用层;https是在http的基础上加上了SSL安全协议,而SSL是运输层协议,所以https是应用层和传输层的结合(我不同意网上将https粗暴地归为运输层的说法)

https如何保障安全
https使用SSL安全协议来保障安全性。具体体现在密钥和证书验证上。 
密钥: 
1、服务端生成一对公钥和私钥,将公钥和证书发送给客户端; 
2、客户端验证证书通过后生成一个对称加密的密钥,并使用服务器生成的公钥加密,发送给服务器; 
3、服务器使用私钥解密获得对称加密密钥。 
4、客户端和服务器相互发送消息认可对称加密密钥,至此加密通道建立。 
5、开始数据传输,在检验数据完整性的基础上,使用对称加密密钥进行加密解密。 
证书验证: 
一般来说浏览器都内置了权威CA的根证书,客户端使用根证书的密钥对服务器发来的证书进行解密验证,若域名、有效期、签发机关等验证项符合则通过,否则认定证书无效,断开连接。
 

HTTP协议简介

HTTP(超文本传输协议)是应用层上的一种客户端/服务端模型的通信协议,它由请求和响应构成,且是无状态的。(暂不介绍HTTP2)

  • 协议

协议规定了通信双方必须遵循的数据传输格式,这样通信双方按照约定的格式才能准确的通信。

  • 无状态
    无状态是指两次连接通信之间是没有任何关系的,每次都是一个新的连接,服务端不会记录前后的请求信息。

  • 客户端/服务端模型
    在这里插入图片描述

 

网络层级

 

应用层 —————— HTTP

传输层 —————— TCP UDP

网络层 —————— IP

数据链路层 ————数据链路

物理层 ——————物理介质

 

URL构成

用了这么久,你注意过吗?
在这里插入图片描述
协议内容

请求(Request)

客户端发送一个HTTP请求到服务端的格式:

  • 请求行

  • 请求头

  • 请求体

 

  • 响应(Response)

服务端响应客户端格式:

  • 状态行

  • 响应头

  • 响应体
    在这里插入图片描述
    状态码

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:
在这里插入图片描述
更详细的状态码可查看 HTTP状态码

但一般我们只需要知道几个常见的就行,比如 200,400,401,403,404,500,502.

请求方法

截止到HTTP1.1共有下面几种方法:
在这里插入图片描述
请求和响应常见通用头

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTTP协议简介,数据安全 如何保证http传输安全性,http与https区别 的相关文章

随机推荐

  • Bugku题目Reverse逆向部分wp(持续更新)

    目录 入门逆向 Easy Re 游戏过关 sign in Easy vb Next 入门逆向 题目链接 丢入DIE PEID看过 没有壳 32位 直接IDA 汇编代码直接看到 flag Re 1s S0 C0OL Easy Re 题目链接
  • 查看淘宝镜像

    win R 打开输入cmd打开 查看node是否安装输入命令 node v 安装淘宝镜像输入命令 npm install g cnpm registry https registry npm taobao org 查看淘宝镜像输入命令 np
  • 场景题

    场景题 1 场景题汇总 1 情景题 如果一个外卖配送单子要发布 现在有200个骑手都想要接这一单 如何保证只有一个骑手接到单子 2 场景题 美团首页每天会从10000个商家里面推荐50个商家置顶 每个商家有一个权值 你如何来推荐 第二天怎么
  • 用Calendar.getInstance()后,set月份被加一问题

    一 问题描述 今天查询一个bug发现了这个问题 使用Calendar 中的before 和after方法比较日期是否在范围内 实际与代码不符 我就去查明原因 首先说下这两个方法吧 日期1 before 日期2 第一个日期在第二个日期之前的意
  • 将 Google Kubernetes Engine (GKE) 上稳定扩散的启动时间缩短 4 倍

    Cloud Ace 是 Google Cloud 全球战略合作伙伴 在亚太地区 欧洲 南北美洲和非洲拥有二十多个办公室 Cloud Ace 在谷歌专业领域认证及专业知识目前排名全球第一位 并连续多次获得 Google Cloud 各类奖项
  • Flutter 安装 填坑记录

    Flutter 安装过程中遇到的问题 安装参考文档 https flutterchina club Add the flutter tool to your path 不知如何在mac中添加环境变量的解决方法参照https jingyan
  • [491]pywin32模拟鼠标键盘操作

    keybd event bVk bScan dwFlags dwExtraInfo 第一个参数 虚拟键码 键盘键码对照表见附录 第二个参数 硬件扫描码 一般设置为0即可 第三个参数 函数操作的一个标志位 如果值为KEYEVENTF EXTE
  • Unable to cast COM object of type Microsoft.Office.Interop.Excel.ApplicationClass' ...

    问题描述 这个问题产生的原因 与 office 的安装有关 参考 How to solve Unable to cast COM object of type Microsoft Office Interop Excel Applicati
  • arm鲲鹏服务器和x86区别

    华为云服务器x86计算和鲲鹏计算的区别是什么 X86和鲲鹏指的是两个系列的中央处理器架构 x86采用复杂指令集 CISC 鲲鹏采用精简指令集 RISC pc6a学习分享小白详细说明一下这2种服务器的差别 一 鲲鹏和X86处理器架构对比 1
  • R语言期末

    一 单项选择题 答题说明 每题均有 A B C D 四个备选答案 其中只有一个正确答案 将其 选出 并写在答题纸上 1 R 语言 软件 是被用于统计计算和绘图工作的一套语言和环境 是一套开源 的数据分析解决方案 最早 1995 年 是由 B
  • 代码走查(codereview)如何执行才能提升代码质量

    成功上岸 进入华为 之前花5W买的JAVA课程合集 整整420集 拿走不谢 公粮上交 手把手教学 学完即可就业 哔哩哔哩 bilibili 作为一名开发工程师 如何提升个人能力 减少bug的发生是一件非常重要的事情 它直接关系到了领导及项目
  • Cesium三维地球上添加点、线、面、文字、图标(图片)、模型等标绘

    添加标绘之前要明白一点 Cesium Entity是可以与样式化图形表示配对并定位在空间和时间上的数据对象 或者说Cesium 提供 Entity API 来绘制控件数据 所以我们添加的所有标绘都是entity Entity API简介 C
  • 【DDR3 控制器设计】(3)DDR3 的写操作设计

    写在前面 本系列为 DDR3 控制器设计总结 此系列包含 DDR3 控制器相关设计 认识 MIG 初始化 读写操作 FIFO 接口等 通过此系列的学习可以加深对 DDR3 读写时序的理解以及 FIFO 接口设计等 附上汇总博客直达链接 DD
  • 2022年数字化转型的三大基于云的驱动因素

    未来一年将标志着企业品牌 工作和生活创新的最大重置 文章来源 Venture Beat Google Cloud CTO Will Grannis 数字技术一直是并将持续是公司应对新冠疫情的背后推动力 从购物和供应链到儿童保育和工作 一切都
  • 服务器访问系统盘 数据盘,云服务器系统盘数据盘

    云服务器系统盘数据盘 内容精选 换一换 当服务器中的磁盘发生故障 或者由于人为误操作导致服务器数据丢失时 可以使用已经创建成功的备份恢复服务器 云服务器备份仅支持将服务器中的所有云硬盘作为整体进行备份和恢复 不支持对服务器中的部分云硬盘进行
  • 【Linux】网络编程 - Socket套接字/基于UDP的网络通信

    目录 一 套接字 1 什么是套接字 Socket套接字 2 套接字的分类 3 Socket套接字的常见API 二 网络字节序 1 什么是网络字节序 2 网络字节序和主机字节序的转换接口 三 IP地址形式上的转换 四 客户端的套接字不由程序员
  • Verilog HDL——Modelsim仿真

    常用testbench语法 finish 和 stop finish任务用于终止仿真并跳出仿真器 stop任务则用于中止仿真 timescale time unit time precision time unit指定计时和延时的测量单位
  • v-for中遍历多个el-select时,下拉选择框同步选择问题

    好久没写博客了 今天记录下遇到的问题 需求就是遍历生成了多个el select下拉框 但是这时候v model绑定值却出现了问题 问题复现 代码如下
  • The Linux Networking Architecture

    The Linux Networking Architecture Design and Implementation of Network Protocols in the Linux Kernel 这本书比较老了 写kernel2 4的
  • HTTP协议简介,数据安全 如何保证http传输安全性,http与https区别

    目前大多数网站和app的接口都是采用http协议 但是http协议很容易就通过抓包工具监听到内容 甚至可以篡改内容 为了保证数据不被别人看到和修改 可以通过以下几个方面避免 重要的数据 要加密 比如用户名密码 我们需要加密 这样即使被抓包监