网络: 应用层

网络资源

  • uri(uniform resource identifier) 统一资源标识符。
  • url(uniform resource location) 统一资源定位符,统指绝对路径。
  • urn(uniform resource name) 统一资源名。

http

报文结构

  • 第一部分简略信息,包含请求方法、url 和协议版本;或者协议版本和状态码
  • 第二部分为请求首部 Header 或者响应首部 Header;
  • 第三部分为内容主体

请求方法

状态码

  • 200:  成功返回响应
  • 301:  永久重定向, 客户端第一次访问此 url 时, 告知客户端以后直接访问新的 url, 该状态保存在浏览器缓存中
  • 302:  临时重定向, 客户端每次访问此 url 时, 告知客户端重定向到新的 url , 后续访问依然访问当前的 url
  • 400:  发送的请求错误, 请求格式错误,或者没有服务器要求的数据
  • 401:  没有权限访问, 当前用户没有权限访问此资源
  • 403:  请求被服务器禁止
  • 404:  请求的 url 不存在, 一般是 url 出错
  • 500:  服务器处理请求出现错误
  • 501:  服务器超出能力之外的方法,例如:请求的方法服务器不支持
  • 504:  来自网关或者代理服务器,请求资源服务器时超时

http 首部

  • 通用首部

  • 请求首部

  • 响应首部

  • 实体首部

长连接与短连接

  • 长连接: 只需要建立一次 tcp 连接就能进行多次 http 通信
  • 短连接: 每有一个http请求就要建立一次tcp连接
    • http/1.1 开始默认是长连接的, 若要断开连接,首部为 Connection : close;
    • 在 http/1.1 之前默认是短连接的, 若要使用长连接, 首部为 Connection : Keep-Alive

无状态协议

  • http 是无状态协议, 它不对请求和响应之间的通信状态进行保存

cookie与session

  • cookie 
    • 客户端第一次发送信息到服务器时, 服务器根据该客户端信息编码加密生成一个 cookie
    • 服务端将此 cookie 发送给客户端, 客户端发送请求时带有此cookie,服务端就可以区分客户端
  • session
    • 客户端第一次发送信息到服务器时, 服务器为客户端创建一个session对象, 它包含了客户端的身份信息, ​​​​​​ 同时为session生成一个sessionId
    • 服务端将sessionId传给客户端, 客户端发送请求时带此sessionId, 服务端就可以区分客户端
  • 发送
    • 服务端通过set-cookie 首部将cookie 和sessionId发送给客户端
    • 客户端通过cookie首部将将cookie 和sessionId发送给服务端

https

http安全问题

  • 使用明文通信,内容可能会被窃听
  • 不验证通信方的身份,通信方的身份有可能遭遇伪装
  • 无法证明报文的完整性,报文有可能遭篡改

通过 ssl(Secure Sockets Layer)/tls(Transport Layer Security) 的方式使 http 变成了安全的https

策略

  • 数据加密
  • 数字证书认证
  • 通过 ssl/tls 报文摘要功能检验报文完整性

加密

  • 对称加密:加密和解密使用同一密钥. 运算速度快, 但无法安全地将密钥传输给数据接收方.
  • 非对称加密:加密和解密使用不同密钥. 公钥加密, 私钥解密, 安全但速度慢 
  • 两者结合: 使用非对称加密去加密对称加密的密钥

                                          

数字证书

数字证书认证机构 (CA, Certificate Authority) 是客户端和服务器双方都信任的第三方机构

  • 服务器向机构申请数字证书, 机构对数据做数字签名, 然后将数据和数字签名打包在一起, 做成数字证书, 发送给服务端
  • https通信时, 服务器把数字证书发给客户端, 客户端取得其中的数据和数字签名, 使用数字证书机构的公开密钥验证数据和数字签名是否合法

  完整性验证: 加密   +  摘要检验  + 认证

http与https

  • https: 使用价格昂贵; 速度稍慢;默认端口为 443; 通信安全。
  • http: 免费; 速度稍快; 默认端口为80; 通信不安全

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【c++】string类---标准库(STL)中的string类

主页:醋溜马桶圈-CSDN博客 专栏:c_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.STL(标准库) 1.1 什么是STL 1.2 STL的版本 1.3 STL的六大组件 1.4 STL的重要性 1.5 如何学习STL 6.STL的缺陷 2. 为什么要学习st…

STM32定时器详解(1)

文章目录 前言一、STM32中定时器的分类二、基础定时器2.1基础定时器框图讲解2.2基础定时器计数功能讲解 三、通用定时器3.1通用定时器基本描述3.2通用定时器硬件框图 四、高级定时器4.1高级定时器基本描述4.2高级定时器硬件框图 总结 前言 本篇文章将带大家来学习STM32中的定时…

SunFMEA冠翔(台山)工业FMEA培训会圆满结束

近日,SunFMEA软件成功在冠翔(台山)工业有限公司举办了为期三天的FMEA软件系统培训,通过重要知识讲解、现场答疑、演练互动、软件实操等环节,把培训氛围推向高潮。 ​ 此次培训分为DFMEA与PFMEA两部分,按照七…

浏览器工作原理与实践--TCP协议:如何保证页面文件能被完整送达浏览器

在衡量Web页面性能的时候有一个重要的指标叫“FP(First Paint)”,是指从页面加载到首次开始绘制的时长。这个指标直接影响了用户的跳出率,更快的页面响应意味着更多的PV、更高的参与度,以及更高的转化率。那什么影响FP…

不定方程求解【详解+代码】

不定方程求解 文章目录 不定方程求解题目描述 分析题目简单穷举法思路1:Java代码C代码 思路2Java代码C代码 测试结果 题目描述 给定正整数a,b,c。求不定方程 axbyc 关于未知数x和y的所有非负整数解组数。 Input 一行,包含三个正…

Linux离线部署gitLab及使用教程

一、下载gitLab的linux系统rpm包 地址:Index of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 找到这个最新版 点击下载 二、上传到linux系统 笔者是在windows系统下的vmware虚拟机中部署安装的,虚拟机中安装了cent…

c/c++整数和浮点数在内存中存储

了解变量的储存原理是我们灵活运用和防止数据截断改变带来的危害的有效途径。 那么我们从int char和float double两类来阐述内存的储存。 首先我们讲内存单位: 内存单位从小到大分别是bit byte KB MB GB TB PB。 bit是最小的内存单位,它可以存储一…

docker容器下部署hbase并在springboot中通过jdbc连接

我在windows的docker中部署了一个hbase服务,然后用springboot连接到此服务并访问数据。 详情可参考项目中的README.md。项目中提供了用于构建镜像的dockerfile,以及测试代码。 项目连接:https://gitee.com/forgot940629/hbase_phoenix_spring…

Java学习路线大纲

一、学习路线 二、学习大纲 0. 地基部分 数据结构:线性表、队列、栈、树、图、哈希等等常见算法:10大排序、字符串匹配、二分法、双指针等等操作系统:进行线程管理、内存管理、I/O等等计算机网络:四层协议、TCP/UDP、HTTP/HTTPS等…

安装elasticsearch和kibana

1.部署单点es 1.1.创建网络 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: docker network create es-net 1.2.加载镜像 这里我们采用elasticsearch的7.12.1版本的镜像,这个镜像体积非常大&#xff0…

互联网思维:息共享、开放性、创新和快速反应、网络化、平台化、数据驱动和用户体验 人工智能思维:模拟人、解放劳动力、人工智能解决方案和服务

互联网思维:信息共享、开放性、创新和快速反应、网络化、平台化、数据驱动和用户体验 互联网思维是指一种以互联网为基础的思考方式,强调信息共享、开放性、创新和快速反应的特点。这种思维方式注重网络化、平台化、数据驱动和用户体验,以适…

数通-路由策略

路由策略 访问控制:1.acl控制——通过控制流量,起到控制作用。2.路由控制 注意:ACL在做报文过滤时,默认允许所有;在做路由抓取时,默认拒绝所有,且只能使用基本ACL。 路由控制 1、路由策略&a…

基于springboot的反诈宣传平台

技术:springbootmysqlvue 一、系统背景 反欺诈平台可以对公交信息进行集中管理,可以真正避免传统管理的缺陷。反欺诈平台是一款运用软件开发技术设计实现的应用系统,在信息处理上可以达到快速的目的,不管是针对数据添加&#xff…

电力柜智能蓝牙锁控解决方案

一、行业背景 随着智能电网的快速发展,电力柜作为电网的重要组成部分,其安全性和可靠性对于保障电力供应至关重要。传统的电力柜锁控系统多依赖于物理钥匙,存在管理不便、安全隐患大、难以实时监控等问题,为了提高电力柜的安全管…

AI绘画自动生成器:让艺术创作触手可及

随着人工智能技术的飞速发展,越来越多的应用领域逐渐与AI技术融合。在艺术领域,AI绘画自动生成器成为了一款备受关注的产品。它利用深度学习算法,让用户通过输入关键词或描述性文本,就能在几秒钟内生成一幅独特的艺术作品。在这篇…

探索人工智能基础:从概念到应用【文末送书-42】

文章目录 人工智能概念人工智能基础【文末送书-42】 人工智能概念 人工智能(Artificial Intelligence,AI)作为当今科技领域的热门话题,已经深刻地影响着我们的生活和工作。但是,要理解人工智能,我们首先需…

杂记8---多线激光雷达与相机外参标定

背景:本人开源的标定程序,提供大家参考学习 基于棋盘格的多线激光雷达和鱼眼/针孔模型相机外参标定的程序 前言 标定数据,只需要一个棋盘格标定板。把标定板放置lidar 与camera 共视区域,拜拍几个pose进行采集。 基于简谐原则…

快速傅氏变换(Fast Fourier Transform,FFT)算法基本原理详细解析

目录 目录 FFT 基本原理 FFT算法 Cooley-Tukey 步骤概述: 1、分解:将原始序列分成偶数部分和奇数部分。原始DFT问题就被分解成两个长度为N/2的子问题,分别对应偶数索引和奇数索引的元素。 2、递归:递归地对这两个子序列应用F…

多线程libtorch推理问题

一、环境 我出问题的测试环境如下: pytorch1.10+cu113 pytorch1.10+cu116 pytorch2.2+cu118 libtorch1.10.1+cu113 libtorch1.10.1+cu111 libtorch1.9.0+cu111 二、问题现象 最近封装libtorch的推理为多线程推理的时候,遇到一个现象如下: (1)只要是将模型初始化放到一个…

黑马现有java课程框架及其功能梳理

目录 高并发相关提高通信效率Netty作用:哪些框架使用它: ChannelChannelHandler 和 ChannelPipelineEventLoop 和 EventLoopGroup**涉及的名词解释:**NIOSocketNginx 高并发相关 主要用来解决IO密集型程序(大量文件读写&#xff…