- 博客(55)
- 收藏
- 关注
原创 SSRF漏洞原理与案例分析
SSRF (Server-Side Request Forgery:服务器端请求伪造)是一种由攻击者构造请求,由服务端发起请求的安全漏洞。一般情况下,SSRF攻击的目标是外网无法访问的内部系统(正因为请求是由服务端发起的,所以服务端能请求到与自身相连而与外网隔离的内部系统。
2024-06-24 21:54:13
735
原创 nginx配置自动压缩-gzip压缩
对比效果:上图是没有开启gzip自动压缩,总共资源是1.3M,传输1.3MB,下图是开启gzip压缩,总共资源是1.3M,传输了973KB。server里添加gzip配置信息。1.nginx配置文件。
2023-12-11 21:46:00
559
原创 nginx多ip部署
进入/etc/sysconfig/network-scripts,编辑ifcfg-ens33网卡文件。将dhcp动态分配修改成static,同时添加ip地址子网掩码、网关和DNS。修改完成后重启网卡,systemctl restart network。
2023-12-10 20:45:00
941
原创 nginx中Include使用
自己的理解:如果学过C语言的话,感觉和C语言中的Include引入是一样的,引入的文件中可以写任何东西,比如server相关信息,相当于替换的作用,一般情况下server是写在nginx.conf配置文件中的,现在你可以将server单独写在一个文件中,用Include引入。多用于自助建站。
2023-12-10 17:59:28
1608
原创 nginx多端口部署
有几个端口需要部署就写几个server,我这里只部署了两个端口分别为80和81端口,所以有两个server文件。80端口项目入口在根目录的test文件中,81端口项目入口在根目录的test1文件夹中。
2023-12-09 22:40:31
585
原创 网络字节序
在计算世界里,有两种字节序:大端字节序:低地址高字节,高地址低字节小段字节序:低地址低字节,高地址高字节例如:端口号是1001,十六进制为0x03e9,由两个字节保存,采用大端字节序,低地址是0x03,高字节是0xe9,也就是,所以先发送0x03,再发送0xe9,这16位在发送主机的缓冲区中也应该是低地址存0x03,高地址存0xe9。但是如果发送主机是小段字节序的,这16位被解释为0xe903,转化为十进制就不是1001。因此,发送主机把1001填到发送缓冲区之前...
2021-09-27 17:28:09
719
原创 二进制与十进制的相互转化
1.二进制二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”。二进制如何转化为十进制:2.十进制十进制数据是用0到9十个数码来表示的数。它的基数为10,进位规则是“逢十进一”。十进制如何转化为二进制:...
2021-09-22 09:47:49
691
原创 liunx环境下运行C语言程序
打开安装好的liunx系统1.安装vim编辑器使用语句:sudo apt-get install vim安装vim,可以在安装前查看是否安装vim编辑器。(注意:在管理员权限下运行)2.安装gcc编辑器使用语句:sudo apt-get install gcc安装gcc。3.使用vim创建并编辑文件vim的具体使用可见:https://blog.csdn.net/weixin_46492701/article/details/119329662?spm=1001.2014..
2021-09-07 11:55:46
251
原创 虚拟机liunx下载及安装教程
链接:https://pan.baidu.com/s/159UlvG_idiR2LWPpnaj4VQ 提取码:d8z3一、安装虚拟机(我提供的是15.5版本的,有30天的免费试用期,30天后有钱的可以购买,没钱的可以在网上找授权码)第1步:点击下一步第2步:接受许可协议,点击下一步第3步:可以更改安装路径,默认不打钩,直接点击下一步第4步:用户体验设置,可以打钩也可以不打钩,点击下一步第5步:默认打钩,点击下一步第6步:点击安装第7步...
2021-09-03 00:45:16
1300
2
原创 MySQL数据库的下载与安装
MySQL安装教程1.下载地址:https://dev.mysql.com/downloads/windows/installer/8.0.html这里最新版本是8.0.26,(建议换成8.0.11版本),点击Archives即可看到历史版本版本:社区版8.0.11,点击Download下载第一步:运行mysql-installer-community-8.0.11.0.msi文件第二步:勾选I accept the license terms然后点击next第三步:选择
2021-09-01 13:27:19
1052
原创 python求三角形面积代码
在平面直角坐标系中,A、B、C三点坐标分别为A(1,1)、B(4,7)、C(-2,5),求三角形ABC的面积。import mathdef solve_V(v1,v2): #求两点之间的边长 v=math.sqrt(pow((v1[0]-v2[0]),2)+pow((v1[1]-v2[1]),2)) return va=[1,1] #a点坐标b=[4,7] #b点坐标c=[-2,5] #c点坐标bc=solve_V(b...
2021-08-31 18:39:27
2659
翻译 MySQL数据库-存储过程和函数-存储引擎
什么是存储引擎MySQL中存在多种存储引擎的概念。简而言之,存储引擎就是指表的类型。在具体开发时,为了提高MySQL数据库管理系统的使用效率和灵活性,可以根据实际需要来选择存储引擎。因为存储引擎指定了表的类型,即如何存储和索引数据、是否支持事务等,同时存储引擎也决定了表在计算机中的存储方式。MySQL支持的存储引擎可以通过show engines来查看数据库管理系统支持哪些存储引擎。在创建表时,若没有指定存储引擎,表的存储引擎将为默认的存储引擎。如果需要操作默认存储引擎,首先需要查看默认
2021-08-11 16:06:07
150
原创 MySQL数据库-存储过程和函数-查看与删除
查看存储过程存储过程创建以后,用户可以通过SHOW STATUS语句来查看存储过程的状态,也可以通过SHOW CREATE语句来查看存储过程的定义。用户也可以通过查询information_schema数据库下的Routines表来查看存储过程的信息。本节将详细讲解查看存储过程的状态与定义的方法。在MySQL中,可以通过SHOW STATUS语句。其基本语法形式如下:SHOW PROCEDURE STATUS [like ‘pattern’ ] ;其中,参数PROCEDURE表示查询存储过程
2021-08-11 15:56:38
306
原创 MySQL数据库-存储过程和函数-REPEAT和WHILE语句
REPEAT语句REPEAT语句是有条件控制的循环语句。当满足特定条件时,就会跳出循环语句。REPEAT语句的基本语法形式如下:[begin_label:] REPEATstatement_list;UNTILsearch_conditionEND REPEAT [end_label]其中,参数statement_list表示循环执行语句。参数search_condition表示循环结束的条件,满足该条件时循环结束。例如:求1+2+...+10的和。代码示例:mysql
2021-08-11 15:32:47
1270
原创 MySQL数据库-存储过程与函数-IF、CASE、LOOP、LEAVE和ITERATE语句详解
在存储过程和函数中,可以使用流程控制来控制语句的执行。IF语句IF语句用来进行条件判断。根据条件执行不同的语句。其语法的基本形式如下:IF search_condition THEN statement_list[ELSEIF search_condition THEN statement_list]...[ELSE statement_list]END IF参数search_condition表示条件判断语句;参数statement_list表示不同条件的执行语句。例如
2021-08-11 12:58:03
2028
翻译 MySQL数据库-存储过程和函数-光标的使用
查询语句可能查询出多条记录,在存储过程和函数中使用光标来逐条读取查询结果集中的记录。有些书上将光标称为游标。光标的使用包括声明光标、打开光标、使用光标和关闭光标。光标必须声明在处理程序之前,并且声明在变量和条件之后。声明光标在MySQL中,可以使用DECLARE关键字来声明光标,其基本语法如下:DECLARE cursor_name CURSORFOR select_statement;其中,参数cursor_name表示光标的名称;参数select_statement表示SELECT语
2021-08-10 20:20:07
354
原创 MySQL数据库-存储过程和函数-创建存储过程
创建存储过程存储过程和函数是在数据库中定义的一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。存储过程和函数可以避免开发人员重复编写相同的SQL语句。而且,存储过程和函数是在MySQL服务器中存储和执行的,可以减少客户器端和服务端的数据传输。创建存储过程和函数是指将经常使用的一组SQL语句组合在一起,并将这些SQL语句当作一个整体存储在MySQL服务器中。存储程序可以分为存储过程和函数。在MySQL中创建存储过程使用的语句CREATE PROCEDURE。其语法形式如
2021-08-10 19:48:56
1201
原创 MySQL数据库-触发器应用详解
触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,就会激活触发器执行相应的操作。MySQL从5.0.2版本开始支持触发器。通过本次的学习,我们将了解触发器的含义和作用、如何创建触发器、查看触发器和删除触发器的方法。同时,可以了解各种事件的触发器的执行情况。创建触发器在MySQL中创建触发器通过SQL语句CREATE TRIGGER来实现,其语法形式如下:CREATE trigger trigger_n
2021-08-10 18:49:02
2132
原创 MySQL数据库-视图操作详解
视图是一个或从多个表中导出来的表,是一种虚拟存在的表。视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据,这样用户可以不看整个数据库表中的数据,而只关心对自己有用的数据。视图可以使用户的操作更方便,而且可以保障数据库系统的安全性。为什么要使用视图对我个人而言来时,比如大学生在学校里参加期末考试,最终的学生考试的成绩一般都是老师在网上上传成绩,学生是无法改的而且只能看到自己的成绩别人的成绩是不知道的,学生看到的表就是视图。为了提高复杂的SQL语句的复用性和表的操作的安全性,MySQL数据库管
2021-08-09 20:31:23
4441
原创 MySQL数据库-数据查询-联合查询
内连接查询在实际开发中,我们会联合多个表来实现查询,比如把班级表和学生表联合起来就同时可以看到班级,老师学员的信息。班级表:ID 名称 班主任 101 一班 Mr.Wang 102 萌新二班 Mr.Zhang 103 萌新三班 Mr.Li 对应的学生表:姓名 班级ID 小花 101 小红 102 小军 102 小白 101 将两个表中的ID相同的记录关联气啦组成一个新的"列表",
2021-08-09 18:51:13
2114
原创 MySQL数据库-数据查询-简单查询-分组查询
MySQL中提供了5个统计函数来磅值用户统计数据,可以使用户很方便的对记录进行统计计数,计算和,计算平均数,计算最大值和最小值,而不需要查询所有数据。在具体使用统计函数时,都是针对表中所有记录或指定特定条件(WHERE语句)的数据记录进行统计计算。在显示应用中,经常会先把所有数据记录进行分组,再对这些分组后的数据记录进行统计计算。MySQL通过SQL语句GROUP BY来实现,分组数据查询语法如下:SELECT function()[field] FROM tablenaem WHERE CON
2021-08-08 23:52:37
491
原创 MySQL数据库-数据查询-简单查询-查询结果排序详解
在MySQL中,从表中查询出的数据可能是无序的,或者排列顺序不是用户所期望的顺序,为了使查询结果的顺序满足用户的需求,可以使用关键字ORDER BY对记录进行排序,其语法形式如下:SELECT field1,field2...FROM tablename ORDER BY fieldm[ASC|DESC];在上述语句中,参数tablename表示所要进行排序的表名,参数field表示表中的字段名字,参数fieldm表示按照该字段进行排序。ASC表示升序进行排序。DESC表示按降序进行排序。默认的情况
2021-08-07 20:03:24
600
原创 MySQL数据库-数据查询-简单查询-LIKE模糊查询详解
LIKE模糊查找当我们只想用字段串中间一部分特征查找含有特征字符串的信息时,MySQL提供了关键字LIKE来实现模糊查询,需要使用痛殴诶副,具体语法形式如下:SELECT field1,field2,...FROM tablename WHERE fieldm LIKE value;在上述语句中,参数tablename表示表名,参数field表示表中的字段名字,通过关键字LIKE来判断字段field的值是否与value字符串匹配,如果相匹配,则满足查询条件,该记录就会被查询出来,否则就不会被查询
2021-08-07 19:36:34
1856
原创 MySQL数据库-数据查询-简单查询-BETWEEN AND查询详解
BETWEEN AND查询当我们需要查询指定范围内的数据(如:id从0~100)的时候,MySQL提供了关键字BETWEEN AND,用来实现判断字段的数值是否在指定范围内的条件查询。该关键字的具体语法形式如下:SELECT field1,field2...FROM tablename WHERE fieldmBETWEEN minvalue AND maxvalue;在上述语句中,参数field表示名称呢过为tablename的表中的字段名,通过关键字BETWEEN和AND来设置字段field
2021-08-07 19:03:42
2602
原创 MySQL数据库-数据查询-简单查询-IN查询
使用IN查询有的时候,当我们需要查询的目标记录限定在某个集合中的时候,在MySQL中可以使用关键字IN来实现,关键字IN可以实现判断字段的数值是否在指定集合中,该关键字的具体语法如下:SELECT field1,field2... FROM tablename WHERE fieldm IN(value1,value2....) ;参数field表示名称为tablename的表中的字段名,参数value表示集合中的值,通过关键字IN来判断字段fieldm的值是否在集合(value1,value2
2021-08-07 18:40:02
5893
原创 MySQL数据库-数据查询-简单查询-基本查询详解
查询所有字段是指查询表中所有字段的数据,这种方式可以将表中所有字段的数据都查询出来。MySQL有两种方法可以查询表中的所有字段。列出表的所有字段通过SQL语句DELECT列出表的所有字段,具体语法形式如下:SELECT field1,field2... FROM tablename;其中field参数表示需要查询的字段名,tablename参数表示表的名称代码示例:mysql> create table class(id int ,name varchar(64));
2021-08-07 18:10:36
1241
原创 MySQL数据库-数据查询-简单查询
查询数据是指从数据库中获取所需要的数据。如要达到验证用户名和密码的目的,就需要从数据库已保存的用户表中读取当前用户的密码进行验证,得以证明。保存查询数据是数据库操作中常用且重要的操作。用户可以根据自己对数据的需求,使用不同的查询方式,获取不同的数据。简单查询在MySQL中可以通过SQL语句来实现基本数据查询,SQL语句可以通过如下多种使用:查询所有字段数据,查询指定字段数据,避免重复数据查询,对结果进行排序和分组等查询。数据库中可能包含数量庞大的表,表中可能包含无数的记录,如果没有两把刷子要获得
2021-08-07 17:27:25
407
原创 MySQL数据库-删除表中的数据详解
删除数据记录是数据操作中常见的操作,可以删除表中已经存在的数据记录。在MySQL中可以通过DELETE语句来删除数据记录,该SQL语句可以通过以下几种方式使用:删除特定数据记录,删除所有数据记录。删除特定数据记录在MySQL中删除特定数据记录可以通过SQL语句DELETE来实现,其语法形式如下:DELETE FROM tablename WHERE CONDITION;在上述语句中,参数tablename表示所要删除数据记录的表名,参数CONDITION指定删除满足条件的特定数据记录。代
2021-08-07 14:02:46
4222
原创 MySQL数据库-更新表中的数据详解
更新书记记录是数据操作中常见的操作,可以更新表中已经存在数据记录中的值。在MySQL中可以通过UPDATE语句来实现更新数据记录,该SQL语句可以通过如下几种方式使用:更新特定数据记录,更新所有数据记录。更新特定数据记录在MySQL中更新也定数据记录可通过SQL语句UPDATE来实现,其语法形式如下:UPDATE tablename SET fileld1=value1,field2=value2... WHERE CONDITION;上述语句中,参数tablename表示所要更新数据记录的
2021-08-07 13:45:51
5018
原创 MySQL数据库-表的插入详解
插入数据记录是常见的数据操作,可以显示向表中增加新的数据记录。在MySQL中可以通过"INSERT INTO"语句来实现插入数据记录,该SQL语句可以通过如下4种方式使用:插入完整数据记录,插入部分数据记录,插入多条数据记录和插入json结构的数据记录。插入完整数据记录在MySQL中插入完整的数据记录可通过SQL语句INSERT来实现,其语法形式如下:INSERT INTO tablename(field1,field2...)VALUES(value1,value2...);可以缩写为:
2021-08-07 11:02:33
6411
翻译 MySQL数据库-表索引-索引的设计原则
为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引。本节将介绍一些索引的设计原则。选择唯一性索引唯一性索引的值是唯一的,可以更快速地通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段,为该字段建立唯一性索引可以很快确定某个学生的信息,如果使用姓名的话,可能存在同名现象,从而降低查询速度。为经常需要排序、分组和联合操作的字段建立索引经常需要使用ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作会浪费很多时间,
2021-08-05 18:08:55
602
原创 MySQL数据库-表索引-隐藏和删除索引
隐藏索引MySQL8开始支持隐藏索引。隐藏索引提供了更人性化的数据库操作。隐藏索引,顾名思义,让索引暂时不可见,不会被优化器使用。默认情况下索引时可见的。隐藏索引可以用来测试索引的性能。验证索引的必要性时不需要删除索引,可以先将索引隐藏,如果优化器性能无影响就可以真正的删除索引。语法如下:ALTER TABLE tablename alter index index_name INVISIBLE; #隐藏索引ALTER TABLE tablename alter index index_
2021-08-05 18:04:13
826
原创 MySQL数据库-表索引-多列索引
多列索引,是指在创建索引时所关联的字段不是一个字段,而是多个字段,虽然可以通过所关联的字段进行查询,但是只有查询条件中使用了所关联字段中的第一个字段,多列索引才会被使用。创建表时定义索引语法:CREATE TABLE tablename(propName1 type1,propName2 type2,...INDEX|KEY[indexname](propName1[(length)] [ASC|DESC],...
2021-08-05 17:10:31
988
原创 MySQL数据库-表索引-全文索引
全文索引主要对字符串类型建立基于分词的索引,主要是基于CHAR,VARCHAR和TEXT的字段上,以便能够加速的查询数据量较大的字符串类型的字段。全文检索以分词为基础,MySQL默认的分词是所有非字母和数字的特殊符号都是分词符。MySQL从3.23.23版本开始支持全文索引,MySQL5.6以前只能在存储引擎为MyISAM的数据表上创建全文索引,5.6版本之后InnoDB开始支持全文索引(5.7之后支出中文全文索引)。在默认情况下,全文索引的搜索执行方式为不区分大小写,如果全文索引所关联的字段为二进
2021-08-05 16:24:32
528
原创 MySQL数据库-表索引-唯一索引
所谓唯一索引,就是在创建索引时,限制索引的字段值必须是唯一的。通过该类型的索引可以比普通索引更快的查询某条记录。创建表时定义索引语法:CREATE TABLE tablename(propName1 type1,propName2 type2,...UNIQUE INDEX|KEY [indexname] (propName[(length)] [ASC|DESC]));参数UNIQUE INDEX和UNIQUE...
2021-08-05 14:02:34
5338
原创 MySQL数据库-表索引-普通索引
所谓普通索引,就是在创建索引时,不附加任何限制条件。该类型的索引可以创建在任何数据类型的字段上。创建表时定义索引语法:CREATE TABLE tablename(propName1 type1,propName2 type2,...INDEX|KEY[indexname] (propName [(length)] [ASC|DESC]));其中,参数INDEX和KEY是用来指定字段为索引的,...
2021-08-05 12:34:06
3162
原创 MySQL数据库-表索引-索引概念
一、基本概念日常生活中,我们经常会在电话号码簿中查阅“某人”的电话号码,按姓查询或者按字母排序查询; 在字典中查阅“某个词”的读音和含义等等,以快速的找到特定记录。在这里,“姓”和“字母”都可看作是索引, 而按“姓”或者“字母”查询则是按索引查询!索引是一种特殊的数据库结构,可以用来快速查询数据库表中的特定记录,是提高数据库性能的重要方式。MySQL中,所有的数据类型都可以被索引。通过索引,查询数据时可以不必读完记录的所有信息,而只是查询索引列,否则数据库系统将读取每条记录的所有信息进行匹配。例
2021-08-04 19:55:16
368
原创 MySQL数据库-列的完整性约束-调整列的完整约束
一、主键,外键和唯一键1.新增语法如下:alter table [table_name] add constraint [constraint_name] [unique key| primary key| foreign key] ([column_name])代码示例:mysql> create table class(id int,name varchar(64)); #创建表mysql> desc class; #描述表mysql> alter
2021-08-04 19:35:25
1016
原创 MySQL数据库-列的完整性约束-默认值约束
设置表字段的默认值(DEFAULT)当为数据库中插入一条新纪录时,如果没有为某个字段赋值,数据库系统就会自动为这个字段插入默认值。为了达到这种效果,可以通过SQL语句关键字DEFAULT来设置。设置数据库表中某字段的默认值非常简单,可以在MySQL数据库管理系统中通过语SQL语句DEFAULT来实现,其语法形式如下:CREATE TABLE tablename(propName propTtype Default dedaultvalue,...);注意:如果没有设置,则默认为空。代
2021-08-04 13:08:26
1280
原创 MySQL数据库-列的完整性约束-自增约束
设置表字段值自动增加(AUTO_INCREMENT)AUTO_INCREMENT是MySQL唯一扩展的完整性约束,当想数据库表中插入新纪录时,字段上的值会自动生成唯一的ID。在具体设置AUTO_INCREMENT约束时,一个数据库中只能有一个字段使用该约束,该字段的数据类型必须是整数类型。由于设置AUTO_INCREMENT约束后的字段会生成唯一的ID,因此该字段也经常会同时设置成主键。设置表中某个字段值的自动增加约束非常简单,可以在MySQL数据库管理系统中通过SQL语句AUTO)INCREMEN
2021-08-04 12:49:22
1397
C++实现航空客运订票系统
2023-07-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人