当前位置: 首页 > news >正文

web基础以及http协议

⼀、web基本概念和常识

Web:为⽤户提供的⼀种在互联⽹上浏览信息的服务,Web 服 务是动态的、可交 互的、跨平台的和图形化的。 Web 服务为⽤户提供各种互联⽹服务,这些服务包括信息浏览 服务,以及各种交互式服务,包括聊天、购物、学习等等内容。 Web 应⽤开发也经过了⼏代技术的不断发展,⽬前 Web 开发依 然是最重要的开发内容之⼀。Web 基础的技术包括超⽂本标记 语⾔(HTML)和 HTTP 协议,HTML 是⼀种呈现数据的⽅式 (给⼈看的),⽽ HTTP 则是⼀组通信的标准(语法、语义、 时许),可以简单的理解为 HTTP 携带 HTML。

1. web 应⽤:

⽹站(⼴义上的PC,⼿机app)

2. 浏览器(Browser):

也称⽤户代理,web客户端,主要有IE、 Edge、Chrome、Firefox、腾讯浏览器,360浏览器等。 3. web服务器(web server):

也称HTTP服务器(HTTP server),主要有 Nginx、Apache、Tomcat 等。

⼆、⽹站基础

1、域名 域名是⼀个IP地址的“⾯具” ,⽬的是便于记忆和访问⼀个或⼀ 组服务器的地址(⽹站,电⼦邮件,FTP 等)。

2、域名解析 本地HOSTS解析 DNS服务器解析

3、⽹站的基本概念 ⽹站、⽹⻚、主⻚; HTTP、URL、HTML、超链接

4、web ⽹站 web1.0(以编辑为特征) web2.0(侧重⽤户交互)

5、动态⻚⾯与静态⻚⾯的差别 (1)URL不同 静态⻚⾯链接⾥没有“?” 动态⻚⾯链接⾥包含“?”

2)后缀不同 (开发语⾔不同)

静态⻚⾯⼀般以 .html .htm .xml 为后缀

动态⻚⾯⼀般以 .php .jsp .py等为后缀

(3)内容不同 静态⻚⾯的内容是固定的 动态⻚⾯的内容会因⽤户、浏览器、时间、地点等⽽发⽣变化。

6、域名格式 http://(协议头)www.bing.com(域名)/(URI资源:路径/⽂ 件名)

示例:https://www.bilibili.com/v/game/?spm_id_from=333.85 1.b_7072696d6172794368616e6e656c4d656e75.21

三、HTTP 协议 HTTP协议是超⽂本传输协议的缩写,英⽂是Hyper Text Transfer Protocol。它是从WEB服务器传输超⽂本标记语⾔ (HTML) 到本地浏览器的传送协议。

1、HTTP 原理 HTTP是⼀个基于TCP/IP通信协议来传递数据的协议,传输的数 据类型为HTML ⽂件,图⽚⽂件,查询结果等。 HTTP协议⼀般⽤于B/S架构。浏览器作为HTTP客户端通过URL 向HTTP服务端即web服务器发送所有请求,web服务器收到客 户端请求后进⾏响应。

2、HTTP 特点

1. http协议⽀持客户端/服务端模式,也是⼀种请求/响应模式的协 议。

2. 简单快速:客户向服务器请求服务时,只需传送请求⽅法和路 径。请求⽅法常⽤的有GET、HEAD、POST。

3. 灵活:HTTP 允许传输任意类型的数据对象。传输的类型由 Content-Type 加以标记。除开可以响应字符串之外,还可以上 传和下载⼆进制⽂件

4. ⽆连接:限制每次连接只处理⼀个请求。服务器处理完请求,并 收到客户的应答后,即断开连接,但是却不利于客户端与服务器 保持会话连接,为了弥补这种不⾜,产⽣了两项记录 http 状态 的技术,⼀个叫做 Cookie,⼀个叫做 Session。

5. ⽆状态:⽆状态是指协议对于事务处理没有记忆,后续处理需要 前⾯的信息,则必须重传。 3、URI 和 URL 的区别

(1)HTTP使⽤统⼀资源标识符(Uniform Resource Identifiers, URI)来传输数据和建⽴连接。 URI:Uniform Resource Identifier 统⼀资源标识符 URL:Uniform Resource Location 统⼀资源定位符

(2)URI 是⽤来标识⼀个具体的资源的,我们可以通过 URI 知道⼀ 个资源是什么,使⽤它就能够唯⼀地标记互联⽹上资源。

(3)URL 则是⽤来定位具体的资源的,标识了⼀个具体的资源位 置。互联⽹上的每个⽂件都有⼀个唯⼀的。

(4)URL,也就是我们俗称的⽹址,它实际上是 URI 的⼀个⼦集。

(5)URI 不仅包括 URL,还包括 URN(统⼀资源名称),它们之 间的关系如下

4、HTTP 报⽂组成

(1)客户端发出请求: GET /index.php HTTP/1.5/ Host:zgod.cn

(2)客户端浏览器发送出来的请求格式: GET:这个部分只声明了请求⽅式,除了get ⽅式可能还有 post 等⽅式。GET 表示请求,POST 表示邮寄。 /index.php:这⾥是⼀个URL,表示了我们要访问的资源是哪 个。 HTTP/1.5/:这⾥表示的是客户端浏览器使⽤的协议版本是1.5。 Host:zgod.cn:这是请求是交给主机zgod.cn的。

(3)服务器反馈的响应:

(4)服务器反馈的响应报⽂的具体含义: HTTP/1.5:部分表示服务器回馈的对应http版本 (刚才客户端的 请求⾥⾯带有版本号,对⽅使⽤的1.5,服务器回馈的也是1.5) 200 ok:这⾥表示的是处理结果的状态码和状态的简单描述(ok) Date:Mon,5 sep 2022 08:49:45 GMT:响应的具体时间 Content-Length:254:响应内容的⻓度 Content-Type:text/html:响应内容的类型 响应报⽂中打了⼀个空⾏(换⾏),当看到响应报⽂中有换⾏时, 它的下⾯开始就是客户机要访问的具体资源了。5、HTTP 状态码 2xx:成功,200成功、201已经创建 3xx:重定向,304未修改 4xx:请求错误,404未找到⽂件、408请求超时 5xx:服务器错,500服务器内部错误、502⽹关错误

6、HTTP 报⽂格式 ⼀个完整的http访问包含请求(request)和响应(response)

(1)请求报⽂ 客户端发出的报⽂:包含了请求⾏,请求头部字段,通⽤头部字 段,实体头部字段及报⽂主体。 请求⾏:客户端使⽤的请求⽅法,⽐如 GET,POST等等。同时 也包含了URL信息和HTTP的版本号。 请求头部字段:它包含了请求的符加信息,⽐如客户端的信息, 响应的优先级等等。 通⽤头部字段:是请求报⽂和响应报⽂都会使⽤的报⽂内容。实体头部字段:跟实体有关的资源信息,⽐如请求的实体更新时 间等。 报⽂主体:⼀般来所,请求报⽂在使⽤GET ⽅法时,没有报⽂ 主体,使⽤ POTS ⽅法时,就会有。

2)常⻅请求⽅法 Ⅰ. 客户端向服务器提出请求的⽅法

1. GET: 去向服务器获取资源。即请求指定的⻚⾯信息,并返回 实体主体。

1. POST:⽤来传输请求的实体主体。向指定资源提交数据进⾏处 理请求。数据被包含在请求体中。POST请求可能会导致新的资 源建⽴或已有资源修改。

1. HEAD:从服务器端获取报⽂⾸部信息,确定客户端输⼊的 URL 有效性和资源的更新⽇期。类似于get请求,只不过返回的响应 没有具体内容,只⽤于获取头部

1. OPTIONS:⽤来询问服务器⽀持哪些⽅法。即获取服务器⽀持 的请求⽅法

. DELETE:⽤来删除⽂件的。请求服务器删除指定的⻚⾯

7、HTTP协议缺点 HTTP协议不会保存状态信息。

⽐如说:客户机对服务器说,请你把之前给我的响应再给我⼀次。 那么这个时候服务器端是不会记录之前给了客户机什么东⻄的。它 会说,我TM哪⼉记得之前给了你什么啊!? 所以我们说HTTP是⽆状态协议。 ⽆状态协议不会去保存任何的响应记录,所以服务器的CPU以及 MEM等等资源的消耗上更⼩⼀些。 试想,如果我们的服务器要去记录给每个客户机回馈了什么响应, 是不是会消耗⾮常⼤的资源。 我们说⽆状态协议也是有缺点的,虽然它节省了服务器端的资源, 但是因为不能记录客户机的状态信息(⽐如某些站点的登录状态),会 对⽤户造成不太⽅便的使⽤体验。 那么由此⼀来,我们就要去说⼀说⼤家都听说过的⼀个技术,叫做 cookie。 实际上COOKIE本身就是针对了HTTP⽆状态协议的弊端⽽ 出现的。 它可以通过在请求和响应报⽂当中写⼊cookie 信息来控制/记录客户 端的状态。 ⾸先,客户端对服务器发出访问请求,服务器会通过 cookie 技术在 返回给客户端的报⽂当中加⼊⼀个叫做 set-cookie 的⾸部字段信 息。告知客户端你要保存cookie。 然后,客户端再次向服务器端发送访问请求的时候,客户端会在访 问请求的报⽂当中加⼊它存储的 cookie。然后再发送。 这个时候,服务器端在接收到请求之后,会检查客户端它发送的请 求当中有没有夹着cookie值,再跟以前的记录进⾏⽐对,然后确认 ⼀下发送请求的客户端是谁,它之前有什么状态。 四、HTTPS 协议 HTTP⼀般是明⽂传输,很容易被攻击者窃取重要信息,鉴于 此,HTTPS应运⽽⽣。 HTTPS 的全称为 (HyperTextTransferProtocoloverSecureSocketLayer), HTTPS 和 HTTP 有很⼤的不同在于 HTTPS 是以安全为⽬标的 HTTP通道,在HTTP 的基础上通过传输加密和身份认证保证了 传输过程的安全性。 HTTPS 在 HTTP 的基础上增加了 SSL 层,也就是说 HTTPS=HTTP+SSL。 HTTP使⽤明⽂传播,有三⼤⻛险 (1)窃听⻛险(eavesdropping):第三⽅可以获知通信内容。 (2)篡改⻛险(tampering):第三⽅可以修改通信内容。 (3)冒充⻛险(pretending):第三⽅可以冒充他⼈身份参与通 信。 SSL/TLS协议是为了解决这三⼤⻛险⽽设计的,希望达到: (1)所有信息都是加密传播,第三⽅⽆法窃听。 (2)具有校验机制,⼀旦被篡改,通信双⽅会⽴刻发现。 (3)配备身份证书,防⽌⽌身份被冒充。 1、SSL层 SSL层(SecureSocketsLayer安全套接字协议),现在也被称为 TLS。 我们都知道SSL中的保证安全的加密通信是⼀次对称加密和⾮对称加 密的结果,但是客户端与服务端建⽴通信的前提就是服务端是否能 够被证书发型机构CA授予证书,那证书是怎么样的呢? 以下是证书类型介绍: SSL:SecureSocketLayer,安全套接字层,http层下新增加的这 ⼀层构成了https。 TLS:TransportLayerSecurity,同样是为了保证数据安全的加 密协议层,是SSL的增强版, SSL 有1.0,2.0,3.0版本,TLS ⽬前 1.0,1.1,1.2,1.3,TLS 的 1.0 版本就是 SSL 的 3.0。 Key:https 中有公钥和私钥,⽤公钥加密的内容,可以使⽤私 钥解密,反之亦然,不过我们平常所说的key⽂件是指私钥⽂ 件。 CSR:CertificateSigningRequest 证书签名请求,⾥⾯包含公钥 等个体信息,这个发给公证机构作为申请,通过这个公证机构颁 发证书给你。 CRT:certificate 证书⽂件,是证书机构颁发的保证安全通信的 ⽂件,由域名、公司信息、序列号和签名信息等组成。 CER:也是证书⽂件,和CRT相⽐只是缩写不同,CRT缩写常⻅ 于类uninx系统,CER缩写常⻅于 Windows 系统。 X.509:这⾥特指颁发的证书的格式,⽽其根据不同的编码格式 分为PEM和DER。 a. PEM-PrivacyEnhancedMail,打开看⽂本格式,以“----- BEGIN "开头,"----- END”结尾,内容是 BASE64 编码。 Apache 和 NGINX 服务器偏向于使⽤这种编码 格式,这种也是 我们所常⻅的。 b. DER-DistinguishedEncodingRules,打开是⼆进制格式,不 可读。Java和Windows服务器偏向于使⽤这种编码格式。CA:CatificateAuthority证书颁发机构,它的作⽤就是给各个⽤ 户签发证书等,⽐如说 Symantec、Comodo、Godaddy、 GolbalSign和Digicert等。 openssl:相当于SSL的⼀个实现,如果把SSL规范看成OO中的 接⼝,那么OpenSSL则认为是接⼝的实现,个⼈理解openssl是 作为针对SSL/TLS的⼀个⼯具,包括对证书的解析,个⼈颁发, 证书编码转化等。

2、HTTPS 安全通信的四⼤原则

(1)机密性 就是对数据的加密,在传输数据的过程当中,如果被⼈劫持了数 据,那么这个加密的数据对⽅不能轻易获得。

(2)完整性 是指数据在发送到接收的过程当中没有被篡改,从⽽接收到的数据 是⼀个完整的数据内容。

(3)身份认证 数据传输的过程当中对于身份的验证,确认对⽅是传送数据过来的 ⼈。可以解决冒充这样的⻛险。

(4)不可否认性 不能否认已经发⽣的⾏为。⽐如刚才举例双⽅借钱需要有借据并且 签名按⼿印,如此⼀来就不能抵赖。

3、通信原理

(1)对称加密 对称加密:通信双⽅都使⽤同⼀把密钥给报⽂进⾏加密和解密。 (密码验证) 对称加密具备速度快,性能⾼的特点。是HTTPS的最终采⽤的加密 ⽅式。 对称加密的通信过程中双⽅都需要同样的密钥。

(2)⾮对称加密 ⾮对称加密:解决单项对称密钥的传输问题。就是加密和解密的 双⽅使⽤不同的密钥。(密钥对验证) 公钥, 是可以公开的。私钥,不能公开。 公钥加密的内容只有私钥可以解密,私钥加密的内容只有公钥可 以解密。

(3)对称加密和⾮对称加密的综合版本

1. 某⽹站拥有⽤于⾮对称加密的公钥A、私钥A。

2. 浏览器向⽹站服务器请求,服务器把公钥A明⽂给传输浏览器。

3. 浏览器随机⽣成⼀个⽤于对称加密的密钥X,⽤公钥A加密后传 给服务器。

4. 服务器拿到后⽤私钥A解密得到密钥X。

5. 这样双⽅就都拥有密钥X了,且别⼈⽆法知道它。之后双⽅所有 数据都通过密钥X加密解密即 可。 成功!HTTPS基本就是采⽤了这种⽅案。 还有⼀个问题,公钥在传输过程中,也有可能被劫持替换,解决办 法是数字证书。

(3)CA 认证机构,称为CA。服务端可以向CA申请认证证书,在证书上附加 公钥信息,然后发布给客户端。服务端在申请证书的过程中,会提 交⽐如DNS主机名等⽹站信息,CA会根据这些信息⽣成证书。

(4)证书 如此⼀来,客户端拿到证书之后,就可以获得证书上⾯我们附带的 公钥,再⽤这个公钥加密‘对称加密的密钥’传递给服务端。

(5)数字签名 证书的真假可以通过数字签名来验证。数字签名就相当于学历证书 上的证书编号。

相关文章:

web基础以及http协议

⼀、web基本概念和常识 Web:为⽤户提供的⼀种在互联⽹上浏览信息的服务,Web 服 务是动态的、可交 互的、跨平台的和图形化的。 Web 服务为⽤户提供各种互联⽹服务,这些服务包括信息浏览 服务,以及各种交互式服务,包括…...

DataEase一键部署:轻松搭建数据可视化平台

DataEase是一个开源的数据可视化和分析工具,旨在帮助用户轻松创建和共享数据仪表盘。它支持多种数据源,包括关系型数据库,文件数据源,NoSQL数据库等,提供强大的数据查询、处理和可视化功能。DataEase 不仅是一款数据可…...

网络安全相关竞赛比赛

赛事日历(包含全国所有网络安全竞赛) https://datacon.qianxin.com/competition/competitions https://www.ichunqiu.com/competition/all 全国网络安全竞赛 名称链接全国大学生信息安全竞赛http://www.ciscn.cn/信息安全与对抗技术竞赛(In…...

Vscode——如何快速搜索项目工程中的某个文件的位置

第一步:按 shift ctrl p 第二步:然后把 > 删除 第三步:输入文件名称即可...

Kubernetes 正在弃用 Docker?Docker将何去何从?

一段时间以来,当人们想到容器时,似乎都会想到Docker和Kubernetes。在构建和运行容器方面,Docker 一直是大名鼎鼎的品牌,而在管理和编排容器方面,Kubernetes 一直是大名鼎鼎的品牌。听到 Kubernetes 从 1.20 版开始不再…...

编程语言「描述符」漫谈——以C++与Rust为例的行为声明与类型描述

编程语言中有三种描述符: 声明符: 表示一种动作, 比如创建变量, 定义函数等等;说明符: 也就是类型说明符, 表示一种数据类型;修饰符: 表示动作或类型的属性, 例如不可变…… swift语言就是严格遵循这些描述符的, 例如, objc是修饰符 , 表示编译成OC兼容函数, func 是声明符, …...

电脑屏幕录制软件哪个好?推荐3款,满足各种录制需求

大家好,今天和大家来聊一个既实用又有点神秘的话题——电脑屏幕录制软件哪个好?这是个让众多网友头疼的问题,毕竟谁不想拥有一款既好用又好玩的录制神器呢? 首先,我们得明确屏幕录制软件可不是简单地录屏而已&#xf…...

大模型学习应用 1:用 itrex 创新高效实现 LLM 的部署和微调

用 itrex 创新高效实现 LLM 的部署和微调 - 项目作业 目录 准备工作Task 1 完成在线环境的工具包安装,包含 基础环境包、Extension for Transformers 包、加速计算包Task 2 利用 Intel Extension for Transformers 部署通义千问 Qwen-7B Chat,并根据 pr…...

【Android】碎片—动态添加、创建Fragment生命周期、通信

简单用法 在一个活动中添加两个碎片&#xff0c;并让这两个碎片平分活动空间 先新建一个左侧碎片布局和一个右侧碎片布局 左侧碎片 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/…...

前端 SSE 长连接

使用 const options {withCredentials: true, // 默认 false}const eventSource new EventSource(/api, options);eventSource.addEventListener(open, () > {});eventSource.onmessage (event) > {}; // 或addEventListener(message,callback)eventSource.addEvent…...

.mp4格式的视频为何不能通过video标签在chrome浏览器中播放?

chrome浏览器目前只支持编解码格式为H264格式的视频&#xff0c;如果某个.mp4后缀的视频不能在chrome浏览器中播放&#xff0c;多半是这个视频的编码格式不是H264的&#xff01; 1、可以通过ffmpeg工具查看当前视频的编码格式&#xff1a; ffprobe -v error -select_streams v…...

Python酷库之旅-第三方库Pandas(051)

目录 一、用法精讲 186、pandas.Series.is_monotonic_increasing属性 186-1、语法 186-2、参数 186-3、功能 186-4、返回值 186-5、说明 186-6、用法 186-6-1、数据准备 186-6-2、代码示例 186-6-3、结果输出 187、pandas.Series.is_monotonic_decreasing属性 187…...

linux timestamp

驱动或应用中获取时间戳的接口。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <sys/time.h> #if 0 #include <linux/ktime.h> /* 内核驱动中获取时间戳 */ static ktime_t get_kernel_time…...

Vue.js 搭建大屏可视化项目

引言 在数字化转型的时代背景下&#xff0c;大屏可视化项目因其直观的数据展示和实时的业务监控能力而变得日益重要。Vue.js&#xff0c;以其简洁的语法、高效的虚拟DOM和强大的组件化能力&#xff0c;成为了构建大屏可视化应用的首选框架之一。本文将从零开始&#xff0c;引导…...

Linux:进程信号(二.信号的保存与处理、递达、volatile关键字、SIGCHLD信号)

上次介绍了&#xff1a;(Linux&#xff1a;进程信号&#xff08;一.认识信号、信号的产生及深层理解、Term与Core&#xff09;)[https://blog.csdn.net/qq_74415153/article/details/140624810] 文章目录 1.信号保存1.1递达、未决、阻塞等概念1.2再次理解信号产生与保存1.3信号…...

最值得推荐的5个AI大模型API

在这个以人工智能为主导的新时代&#xff0c;选择一个卓越的AI模型API接口&#xff0c;对于企业和个人在AI驱动的商业和技术革新中取得成功至关重要。 在人工智能的浪潮中&#xff0c;大型AI模型API接口正成为推动技术创新和业务发展的重要力量。随着2024年技术的持续进步和应用…...

PyTest+Allure生成测试报告

一、官网文档&#xff08;权威&#xff09; 1. Allure Report 官网&#xff1a;Allure Report Docs — Introduction 2. Allure GitHub地址&#xff1a;GitHub - allure-framework/allure2: Allure Report is a flexible, lightweight multi-language test reporting tool. It …...

ROS2教程(10) - 编写接收程序、添加frame - Linux

注意 : 本篇文章接上节 (点击此处跳转到上节) 编写接收程序 cpp <the_work_ws>/src/learning_tf2_cpp/src/turtle_tf2_listener.cpp #include <chrono> #include <functional> #include <memory> #include <string>#include "geometry_…...

Arraylist与LinkedList的区别

Arraylist 概念 Arraylist非线程安全Arraylist 底层使用的是Object数组ArrayList 采用数组存储&#xff0c;插入和删除元素的时间复杂度受元素位置的影响ArrayList 支持快速随机访问,就是通过元素的序号快速获取元素对象ArrayList的空间浪费主要体现在列表的结尾会预留一定的容…...

Nestjs使用Redis的最佳实践

前几天在项目中有用到Redis JWT实现服务端对token的主动删除(退出登录功能)。故此介绍下如何在Nestjs中使用Redis&#xff0c;并做下总结。 知识准备 了解Redis - 网上很多简介。了解Nestjs如何使用jwt生成token - 可移步看下我之前的文章 效果展示 一、mac安装与使用 示…...

Cadence23学习笔记(十四)

ARC就是圆弧走线的意思&#xff1a; 仅打开网络的话可以只针对net进行修改走线的属性&#xff1a; 然后现在鼠标左键点那个走线&#xff0c;那个走线就会变为弧形&#xff1a; 添加差分对&#xff1a; 之后&#xff0c;分别点击两条线即可分配差分对&#xff1a; 选完差分对之后…...

socket 编程

1. socket 套接字 Socket 是一个用于网络通信的技术。Socket 通信允许客户端——服务器之间进行双向通信。它可以使任何客户端机器连接到任何服务器&#xff0c;安装在客户端和服务器两侧的程序就可以实现双向的通信。Socket的作用就是把连接两个计算机的通信软件“中间接”起来…...

如何使用 HTTPie 进行高效的 HTTP 请求

如何使用 HTTPie 进行高效的 HTTP 请求 引言 HTTPie 是一个命令行 HTTP 客户端&#xff0c;它以其简洁的语法和人性化的输出格式赢得了广大开发者的喜爱。与 curl 相比&#xff0c;HTTPie 提供了更加直观和用户友好的接口&#xff0c;使得执行 HTTP 请求变得轻松愉快。本文将…...

Lingo求解器百度云下载 ling 8.0/lingo 18安装包资源分享

如大家所熟悉的&#xff0c;Lingo是Linear Interaction and General Optimizer的缩写&#xff0c;中文名称为“交互式线性和通用优化求解器”&#xff0c;是一套专门用于求解最优化问题的软件包。 在大部分人认知里&#xff0c;Lingo可用于求解线性规划、二次规划、整数规划、…...

文献综述如何为研究的理论框架做出贡献

VersaBot一键生成文献综述 文献综述在几个关键方面对塑造和巩固研究的理论框架起着至关重要的作用&#xff1b; 1. 识别相关理论和概念&#xff1a; 通过对现有研究的探索&#xff0c;您将遇到与您的主题相关的突出理论和概念。这些可以作为您自己的理论框架的构建块。 2. 理…...

FastAPI(七十九)实战开发《在线课程学习系统》接口开发-- 加入课程和退出课程

源码见&#xff1a;"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 加入课程 我们先看下加入课程 1.是否登录 2.课程是否存在 3.是否已经存在 4.添加 首先实现逻辑 def get_student_course(db: Session, course: int…...

【赛事推荐】2024中国高校计算机大赛人工智能创意赛

“中国高校计算机大赛”&#xff08;China Collegiate Computing Contest&#xff0c;简称C4&#xff09;是面向全国高校各专业在校学生的科技类竞赛活动&#xff0c;于2016年由教育部高等学校计算机类专业教学指导委员会、教育部高等学校大学软件工程专业教学指导委员会、教育…...

C++沉思:预处理和编译

预处理和编译 条件编译源代码使用方式典型示例原理 使用static_assert执行编译时断言检查使用方式原理 在C中&#xff0c;编译是将源代码转换为机器代码并组织在目标文件中&#xff0c;然后将目标文件链接在一起生成可执行文件的过程。编译器实际上一次只处理一个文件&#xff…...

交通数据处理-计算途径某些路段的车辆数

根据车辆的运行轨迹&#xff0c;计算先经过某些路段&#xff0c;再经过某些路段的车辆数。 欢迎关注本人公众号--交通数据探索师 如下表&#xff0c; 其中&#xff1a;vehicle: 车辆编号&#xff1b;route: 车辆轨迹。 以第一行为例&#xff0c;车辆car1按顺序经过了路段123…...

从0到1入门系列 | 崖山公开课再加码,三小时带你入门崖山数据库!

对不断更新的技术心生迷茫 不知如何正确的提升自己&#xff1f; 对新兴的国产数据库领域充满好奇 却不知从何入手&#xff1f; 崖山专家团队精心筹备 《从0到1入门》系列直播课 6节课 三小时 助力数据库小白变身技术高手 掌握最前沿的数据库技术 现在开始 开启职场“金…...

Powershell自定义带参数的别名

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、函数二、使用步骤总结 前言 之前写了一篇文章定义别名让powershell尽可能接近Unix风格&#xff0c;增强两者的互操作性&#xff0c;今天给出方法可以定义带…...

文件操作相关的精讲

目录&#xff1a; 思维导图 一. 文件定义 二. 文件的打开和关闭 三. 文件的顺序读写操作 四. 文件的随机读写操作 五. 文本文件和二进制文件 六. 文件读取结束的判断 七.文件缓冲区 思维导图&#xff1a; 一. 文件定义 1.文件定义 C语言中&#xff0c;文件是指一组相…...

05 循环神经网络

目录 1. 基本概念 2. 简单循环网络 2.1 简单循环网络 2.2 长程依赖问题 3. 循环神经网络的模式与参数学习 3.1 循环神经网络的模式 3.2 参数学习 4. 基于门控的循环神经网络 4.1 长短期记忆网络 4.2 LSTM网络的变体网络 4.3 门控循环单元网络 5. 深层循环神经网络…...

C#初级——条件判断语句、循环语句和运算符

条件判断语句 简单的条件判断语句&#xff0c;if()里面进行条件判断&#xff0c;如果条件判断正确就执行语句块1&#xff0c;如果不符合就执行语句块2。 if (条件判断) { 语句块1 } else { 语句块2 } int age 18;if (age < 18){Console.WriteLine("未…...

Laravel路由模型绑定:简化依赖注入的艺术

Laravel路由模型绑定&#xff1a;简化依赖注入的艺术 引言 在现代Web应用开发中&#xff0c;Laravel框架以其优雅和简洁的代码而闻名。Laravel的路由模型绑定&#xff08;Route Model Binding&#xff09;是框架提供的一项强大功能&#xff0c;它允许开发者在路由处理中自动注…...

【vue前端项目实战案例】之Vue仿饿了么App

本文将介绍一款仿“饿了么”商家页面的App。该案例是基于 Vue2.0 Vue Router webpack ES6 等技术栈实现的一款外卖类App&#xff0c;适合初学者进行学习。 项目源码下载链接在文章末尾 1 项目概述 该项目是一款仿“饿了么”商家页面的外卖类App&#xff0c;主要有以下功能…...

冷热分离——Java全栈知识(36)

之前在面试的时候有老师问&#xff1a; 我看你使用了水平分表&#xff0c;但是如果有些 1%的数据占了访问量的 90%&#xff0c;而剩下 99%的数据只占了访问量的 10%。这种情况怎么处理。 1 、冷热分离 1.1、什么是冷热分离 冷热分离指的是在处理数据时将数据库分为冷库和热库…...

了解Selenium中的WebElement

Selenium中到处都使用WebElement来执行各种操作。什么是WebElement&#xff1f;这篇文章将详细讨论WebElement。 Selenium中的WebElement是一个表示网站HTML元素的Java接口。HTML元素包含一个开始标记和一个结束标记&#xff0c;内容位于这两个标记之间。 HTML元素的重命名 …...

OpenCV facedetect 人脸检测官方示例项目配置

运行程序。该程序会自动打开摄像头&#xff0c;识别并定位摄像头前的人脸以及眼睛部位。 输入q或者Q&#xff0c;退出程序。 或进行文本中所包含的图片路径 或 单个图片进行检测&#xff0c;自行修改代码即可 配置环境项目&#xff0c;debug 解决error C4996: ‘fopen’: This…...

自定义Laravel Artisan风格:打造个性化命令行体验

自定义Laravel Artisan风格&#xff1a;打造个性化命令行体验 引言 Laravel的Artisan命令行工具是开发过程中不可或缺的一部分&#xff0c;它提供了一个强大的接口来执行各种开发、维护、测试等任务。除了执行命令&#xff0c;Artisan还允许开发者自定义命令行输出的风格&…...

CTF之网站被黑

简单看一下网页和源码没发现什么明显漏洞 那就扫描一下目录 发现了/shell.php文件&#xff0c;访问一下&#xff0c;发现是一个后台管理登录页面 别无他法只能爆破喽&#xff0c;爆破后发现密码是hack flag{25891d9e9d377f006eda3ca7d4c34c4d}...

Electron学习笔记(一)基础环境

目录 前言 基础环境准备 安装 Node.js 配置项目文件 通过代理服务安装 通过国内仓库安装 一些常见问题&#xff1a; 前言 一个新手学习Electron的笔记&#xff0c;记录为主&#xff0c;仅供参考。 其他文章见专栏目录。 基础环境准备 开发之前先将基础环境搭建好。 …...

【C语言】栈的实现(数据结构)

前言&#xff1a; 还是举一个生活中的例子&#xff0c;大家都玩过积木&#xff0c;当我们把积木叠起来的时候&#xff0c;如果要拿到最底部的积木&#xff0c;我们必须从顶端一个一个打出&#xff0c;最后才能拿到底部的积木&#xff0c;也就是后进先出&#xff08;先进后出&a…...

前端三大主流框架对比

在现代前端开发中&#xff0c;React、Vue和Angular是三大流行的框架/库。它们各自有独特的优缺点&#xff0c;适用于不同的开发需求和项目规模。下面是对这三者的详细比较&#xff1a; 一、 React 简介&#xff1a; 由Facebook开发和维护&#xff0c;是一个用于构建用户界面…...

AOP~面向切面编程介绍

AOP基础 概述 AOP&#xff1a;Aspect Oriented Programming&#xff08;面向切面编程、面向方面编程&#xff09;&#xff0c;面向特定方法的编程。 动态代理是面向切面编程最主流的实现。 SpringAOP是Spring框架的高级技术&#xff0c;旨在管理bean对象的过程中&#xff0c…...

Android SurfaceFlinger——GraphicBuffer的提交(三十三)

在 SurfaceFlinger 中,我们 dequeueBuffer 和 queueBuffer 是 Surface 控制接口中非常重要的两个函数,分别用于从 Surface 的 BufferQueue 中取出缓冲区和向 BufferQueue 提交(队列)缓冲区。这两个函数在生产者和消费者模型中扮演着核心角色,确保了图像数据的高效和有序传…...

创维汽车滁州永通体验中心开业仪式暨超充车型区域上市会圆满成功

2024年7月20日&#xff0c;创维汽车滁州永通体验中心盛大开业&#xff0c;当日&#xff0c;创维汽车市场部经理周世鹏、安徽大区总监王大明等领导参加本次开业盛典&#xff0c;共同见证创维汽车滁州永通体验中心成功落地。 2021年&#xff0c;新能源乘用车高速发展&#xff0c;…...

【PHP】系统的登录和注册

一、为什么要学习系统的登录和注册 系统的登录和注册可能存在多种漏洞&#xff0c;这些漏洞可能被恶意攻击者利用&#xff0c;从而对用户的安全和隐私构成威胁。通过学习系统的登录和注册理解整个登录和注册的逻辑方便后续更好站在开发的角度思考问题发现漏洞。以下是一些常见…...

2024.7.29 刷题总结

2024.7.29 **每日一题** 682.棒球比赛&#xff0c;这道题是一道简单的模拟题&#xff0c;用栈模拟题中的四个操作就可以了&#xff0c;操作一是将x加到列表末尾&#xff0c;操作二是将列表的后两项之和加到列表末尾&#xff0c;操作三是把列表最后一项的两倍加到列表末尾&#…...

WebSocket程序设计

协议说明 WebSocket 是一种在单个TCP连接上进行全双工通信的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单&#xff0c;允许服务端主动向客户端推送数据。Websocket主要用在B/S架构的应用程序中&#xff0c;在 WebSocket API 中&#xff0c;浏览器和服务器只…...