【web知识清单】你想要的都有:网络、HTTP、会话保持、认证授权......持续更新中

news2024/10/6 20:38:33

作者简介:

目录

1.网络

2.HTTP

2.1.报文结构

2.1.1.请求报文

2.1.2.响应报文

2.2.方法

2.3.HTTPS

2.4.跨域

3.会话保持

3.1.概述

3.2.cookie

3.3.session

4.认证授权

4.1.Token

4.2.JWT

4.3.oauth


1.网络

计算机网络:

计算机网络,由节点和边组成的一组拓扑结构。

边,即链路,路由器间的链路为主干链路,路由器和主机之间的链路为接入链路。

节点,即主机节点或者数据交换节点,由主机或者数据交换设备(或者更高层的负载均衡设备)组成

分层:

根据所负责的功能的不同,计算机网络在逻辑上分层吗,经典模型是OSI七层,但是七层稍显繁琐,一般用TCP/IP四层就能简要说明网络分层中层级的作用。

TCP/IP四层分层:

  • 应用层

    应用程序

  • 传输层

    提供端到端之间的通信,传输层在终端用户之间提供透明的数据传输,向上层提供可靠的数据传输服务。传输层在给定的链路上通过流量控制、分段/重组和差错控制来保证数据传输的可靠性。

  • 网络层

    IP层,负责处理IP数据报文在网络中的传输,IP层传输的是IP数据报文,借助路由表,把IP数据报文从网络的一端传输到另一端,简而言之,IP实现包的路由传输,IP协议和路由器工作在网络层。

  • 网络接口层

    包括操作系统的设备驱动程序和网卡,它们一起处理与传输媒介(光纤等)的物理接口细节。

数据在分层间流转、网络中游走的过程如下:

协议:

协议,对等层实体间通信过程中遵守的规则的集合。

以下为各层中一些经典的协议:

2.HTTP

HTTP,超文本传输协议,WEB体系选用了该协议作为应用层协议。

2.1.报文结构

2.1.1.请求报文

HTTP的请求报文(request)由四部分组成:请求行(request line)、请求头部(header)、空行和请求数据(request data)

名称作用
请求行记录请求方法、URL、HTTP协议版本号
请求头以键值对的方式记录一些附加信息,如cookie、编码、host等
请求数据请求数据,也叫请求体,不在GET方法中使用,而是在POST方法中使用, POST方法适用于需要客户填写表单的场合。 请求头中存在两个与请求数据相关的重要key:Content-Type和Content-Length。

也就是说只有Post请求有请求体:

2.1.2.响应报文

HTTP的响应报文(response)中最重要的两部分:

  • 状态码

    记录响应的状态

  • 响应体

    记录响应的数据,可以是是网页(HTML代码),是图片、视频、音频等。

2.2.方法

HTTP中总共有GET、POST、PUT、DELETE、CONNECT、HEAD,本来设计的初衷是想让对服务器的每一种操作都有对应的方法,但在实际使用中发现其实GET、POST两个方法就足够了,GET负责向服务器要数据,POST负责向服务器存数据。

GET、POST区别:

名称特点
GET参数在URL中,数据大小不能超过2KB
POST数据在HTTP报文的“请求数据”这一区域,理论上大小没有上限

2.3.HTTPS

https=http+ssl/TSL,即使用HTTP进行通信,使用SSL/TLS对数据进行保护。

在https体系中,SSL/TLS为HTTP协议(应用层)和TCP(传输层)间的中间层。

SSL/TLS在三个维度对数据进行保护:

  • 内容加密:采用混合加密技术,中间者无法直接查看明文内容

  • 验证身份:通过证书认证客户端访问的是自己的服务器

  • 保护数据完整性:防止传输的内容被中间人冒充或者篡改

SSL:

Secure Sockets Layer,安全套接层协议,为网络通信提供安全及数据完整性的一种安全协议。在1994年被Netscape发明,后来各个浏览器均支持SSL,其最新的版本是3.0

TLS:

Transport Layer Security,安全传输层协议,最新版本的TLS(Transport Layer Security,传输层安全协议)是IETF(Internet Engineering Task Force,Internet工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。在TLS与SSL3.0之间存在着显著的差别,主要是它们所支持的加密算法不同,所以TLS与SSL3.0不能互操作。虽然TLS与SSL3.0在加密算法上不同,但是在理解HTTPS的过程中,可以把SSL和TLS看做是同一个协议。

工作机制:

SSL/TLS的机制类似于TCP,采用握手的方式在连接建立阶段完成加解密方法、密钥等数据的协商确定,然后后续的数据通信过程采用协商的结果。

SSL证书:

配置在服务器上,也称为SSL服务器证书,记录当前服务器支持的加密算法、密钥等信息,这是使用SSL/STL时的核心实体将其配置在服务器上即可,整个HTTPS里客户端和服务器建立安全的连接靠的就是读取改文件从而进行决策。

2.4.跨域

跨域问题是源自“同源策略”,“同源策略”是一种约定,本质上是限制一个域的JavaScript脚本和另一个域内的内容进行交互。

“同源策略”是保证浏览器安全的一种核心机制,所有浏览器在实现上都必须实现该机制,否则该浏览器将会非常容易被攻击。所谓“同源”,即在一个域内,一个域由协议、主机、端口三部分组成,有任何一个部分不同,都不是一个域、一个源。

如在http://www.test.com这个网页中她的js无法与其他域中的内容进行交互。这种交禁止交互不是指跨域的请求发不出去,而是指响应的结果被浏览器拦截了。

因此在后端解决跨域问题是很方便的,只要在响应返回前处理一下浏览器判断响应是否跨域的条件项就行。

3.会话保持

3.1.概述

会话保持技术的出现是因为HTTP 是一个无状态的协议,这一次请求和上一次请求是没有任何关系的,互相无法感知,上一次请求干了什么?这一次请求完全不知道,会话保持技术就是为了以一种第三方的设计实现http请求之间的联系,让请求之间能够相互感知。

目前的两大会话保持技术:

  • cookie

  • session

cookie和session的区别,用一个例子解释:

封闭式管理的学校,如何进入校园?

  • 方式1.学校准备一本花名册,进门的时候挨个比对。

  • 方式2.学生办一张学生卡,持卡进出。

3.2.cookie

客户端技术,即状态(数据)保存在客户端,即学生卡进入校园这一方式。

服务器向客户端返回(数量无限制)cookie,一个cookie即一个键值对。

客户端、服务器交互过程中cookie的载体为request和response。

public class DemoServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Cookie[] cookies=request.getCookies();
        if(cookies!=null){
            for(Cookie cookie:cookies) {
                if("LastLoginTime".equals(cookie.getName())) {
                    System.out.println("上次访问时间:" + cookie.getValue());
                }
            }
        }else{
            System.out.println("这是第一次登录!");
        }
        Cookie cookie=new Cookie("LastLoginTime",System.currentTimeMillis()+"");
        cookie.setMaxAge(60*60*24);//设置有效期为一天
        response.addCookie(cookie);
    }
}

3.3.session

服务器技术,即状态(数据)保存在服务端,即花名册进入校园这一方式。和cookie一样,在客户端、服务器交互过程中session的载体也是request、response。

session的产生:

session并不会在客户端访问服务器的时候自动创建,而是必须通过指定API来产生:

request.getSession()

session的销毁:

  • session.invalidate()

  • 前后两次请求超出了session指定的生命周期时间。

除此之外,session不会被销毁,之所以平时感觉到浏览器关闭session就会销毁是因为关闭浏览器后再重新打开浏览器如果之前该浏览器在服务器上存在session的话,会重新创建一个session覆盖老的session,所以体感上就会感觉关掉浏览器后session就被销毁了。

session的使用:

由于整个浏览器共享session里面的数据,所以session可以起到类似上下文对象共享数据的功能。

session的唯一身份标识是sessionID,sessionID会自动封装成cookie返回。

这就是为什么,打开浏览器,http请求响应里面都会有一个cookie存在的原因。

4.认证授权

4.1.Token

token ,也叫“令牌”,是验证用户身份的凭证。token的组成具有随意性,能标识用户身份即可。

token的工作流程:

客户端向服务器发送请求,服务器收到后生成token返回给客户端,此后客户端的任何鉴权都基于该token进行。

4.2.JWT

JWT,Json web token,即一种基于json的通用token标准,token本质上具有任意性,JWT规范了token的格式。

JWT 规定token由三部分组成:

  • header

    头部,承载两块信息:

    • 声明类型,即声明这是jwt

    • 声明加密算法,默认使用 HMAC SHA256加密算法

  • payload

    载荷,存放有效信息(数据信息)的地方。

  • signature

    签证,可以用于验证整个token的完整性以及是否被篡改,由三部分组成:

    • header(base64之后的)

    • payload(base64之后的)

    • secret私钥

4.3.oauth

OAUTH,Open Authorization,开放授权协议,为用户资源的授权提供了一个安全的、开放而又简易的标准。目的是让第三方对用户的数据只有有限访问权,而无法触及到用户的核心信息。

例如,在第三方网站上使用微信或者QQ作为账号进行登录,就是使用的oauth协议,只返回给第三方注入用户名、头像等信息,而不会返回给第三方秘密等核心数据。

想了解更多oauth的同学,可以移步博主之前的另一篇文章:

详解OAuth2.0__BugMan的博客-CSDN博客

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

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

相关文章

Lesson4-1:OpenCV图像特征提取与描述---角点特征

学习目标 理解图像的特征知道图像的角点 1 图像的特征 大多数人都玩过拼图游戏。首先拿到完整图像的碎片,然后把这些碎片以正确的方式排列起来从而重建这幅图像。如果把拼图游戏的原理写成计算机程序,那计算机就也会玩拼图游戏了。 在拼图时&#xff…

Problem: 205. 同构字符串;力扣;python

题目描述 代码展示 # class Solution: # def isIsomorphic(self, s: str, t: str) -> bool: # dict {} # flag 0 # for i in range(len(s)): # #记录,s # if s[i] not in dict.keys(): # …

【真题解析】系统集成项目管理工程师 2023 年上半年真题卷(综合知识)

本文为系统集成项目管理工程师考试(软考) 2023 年上半年真题(全国卷),包含答案与详细解析。考试共分为两科,成绩均 ≥45 即可通过考试: 综合知识(选择题 75 道,75分)案例分析(问答题 4 道,75分)综合知识(选择题*75)1-10 题11-20 题21-30 题31-40 题41-50 题51-60 …

让GPT成为您的科研加速器丨GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图

GPT对于每个科研人员已经成为不可或缺的辅助工具,不同的研究领域和项目具有不同的需求。如在科研编程、绘图领域:1、编程建议和示例代码:无论你使用的编程语言是Python、R、MATLAB还是其他语言,都可以为你提供相关的代码示例。​2、数据可视化…

vs code调试rust乱码问题解决方案

在terminal中 用chcp 65001 修改一下字符集,就行了。有的博主推荐 修改 区域中的设置,这会引来很大的问题。千万不要修改如下设置:

宁德时代龙头,比亚迪榜眼:1-7 月全球电动汽车电池市场份额公布

根据SNE Search公布的数据显示,今年1-7月全球电动汽车电池的消费总量为362.9 千兆瓦时(GWh),比去年同期的243.2 千兆瓦时(GWh)增长了49.2%。这表明电动汽车市场的增长势头依然强劲。 在这些数据中&#xff…

QuantLib学习笔记——InterestRate的应用

⭐️ 单利还是复利 巴菲特老爷子有句名言:“人生就像滚雪球,重要的是发现很湿的雪和很长的坡。” 很湿的雪,指的就是复利。很长的坡,指的就是时间。很湿的雪和很长的坡组合起来,就能滚成巨大的雪球。 哈哈&#xff0…

南京市玄武区委常委、组织部部长任宁一行率企业家研修班莅临麒麟信安调研交流

为学习在先进科学技术、人才引育等方面的领先经验,进一步加强交流合作,9月4日上午,南京市玄武区委常委、组织部部长任宁,玄武区委组织部副部长、两新工委书记鲁琳,玄武区委组织部人才综合服务科科长韩静玮等领导一行带…

Apache NIFI将Json数据转为SQL语句并插入到数据库表中

说明 本文中的NIFI是使用docker进行安装的,所有的配置参考:docker安装Apache NIFI 需求背景 现在有一个文件,里面存储的是一些json格式的数据,要求将文件中的数据存入数据库表中,以下是一些模拟的数据和对应的数据库…

Linux_VMware_虚拟机磁盘扩容

来源文章 :VMware教学-虚拟机扩容篇_vmware虚拟机扩容_系统免驱动的博客-CSDN博客 由于项目逐步的完善,需要搭建的中间件,软件越来越多,导致以前虚拟机配置20G的内存不够用了,又不想重新创建新的虚拟机,退…

数据脱敏sensitive(前端或数据库加密,解密)

可以对数据加密,解密,对数据库加密的数据进行解密显示,对数据库没有加密的数据进行加密处理展示前端等待 1:引入数据如下结构 1-1:SensitiveDecode脱敏解密注解 package com.example.poi.desensitization.annotation;…

【python基础知识】3.input()函数

文章目录 前言input()函数input()函数的使用input()函数结果的赋值input()函数的数据类型input()函数结果的强制转换input()函数知识点总结 综合复习 前言 在前面的学习中,我们学会了用print()函数对计算机下简单的命令,开始接触Python里不同类型的数据…

props和$emit

<template> <div class"son" style"border: 3px solid #000; margin: 10px"> 我是Son组件 {{ title }} <button click"changeFn">修改title</button> </div> </template> <script> expo…

电脑显示器无信号?这样做!(问题已解决)

“真的很奇怪哎&#xff0c;我的电脑显示器居然无信号。用着用着电脑就黑了&#xff0c;为什么会出现这种情况呢&#xff1f;请大佬为我解答&#xff01;” 有些朋友可能会发现&#xff0c;当我们打开电脑时&#xff0c;电脑显示器却显示“无信号”。这是为什么呢&#xff1f;电…

Elsaticsearch倒排索引

搜索引擎应该具有什么要求&#xff1f; 查询快 高效的压缩算法 快速的编码和解码速度 结果准确 BM25 TF-IDF 检索结果丰富 召回率 面向海量数据&#xff0c;如何达到搜索引擎级别的查询效率&#xff1f; 索引 帮助快速检索以数据结构为载体以文件形式落地 倒排…

【Flutter】Flutter 使用 qr_flutter 实现QR码二维码生成与渲染

【Flutter】Flutter 使用 qr_flutter 实现QR码二维码生成与渲染 文章目录 一、前言二、qr_flutter 包简介三、安装与配置四、基本使用五、高级功能与自定义六、完整实际业务代码示例七、总结 一、前言 亲爱的 Flutter 初学者&#xff0c;你好&#xff01;今天我要与你分享一个…

vue3在路由route.js中获取不到仓库pinia中store里面的值

原因&#xff1a;小仓库(useUserStore )必须有大仓库(pinia)才能运行&#xff0c;在组件中能使用pinia仓库的数据&#xff0c;是因为在main.ts中已经在vue上面挂载了大仓库(pinia)&#xff0c;但是route.js不是vue组件&#xff0c;没有被挂载大仓库&#xff0c;所以不能运行 解…

如何在arXiv上发表一篇文章

目录 1. 初始信息确认2. 提交论文文件3. 论文编译结果4. 补充论文信息5. 总览 1. 初始信息确认 版权问题需要根据个人情况选择。 IEEE, Elsevier, BioMed Central, 这几个出版商都允许在投稿之前挂文章到arXiv下。通常是选择&#xff1a; arXiv.org perpetual, non-exclusive l…

C#常用多线程(线程同步,事件触发,信号量,互斥锁,共享内存,消息队列)

using System; using System.Threading; using System.Windows.Forms; using UtilForm.Util;namespace UtilForm {// 线程同步&#xff0c;事件触发&#xff0c;信号量&#xff0c;互斥锁&#xff0c;共享内存&#xff0c;消息队列public partial class frmUIThread : Form{ Sy…

统计学极简入门——区间估计

4. 区间估计 还以为你被上节课的内容唬住了~终于等到你&#xff0c;还好没放弃&#xff01; 本节我们将说明两个问题&#xff1a;总体均值 μ \mu μ 的区间估计和总体比例 p ˉ \bar{p} pˉ​ 的区间估计。 区间估计经常用于质量控制领域来检测生产过程是否正常运行或者在…