数据库安全-第一章 Mysql 安全基础-【web 环境搭建——LAMP-1】-LAMP LNMP 简介

本文主要是介绍数据库安全-第一章 Mysql 安全基础-【web 环境搭建——LAMP-1】-LAMP LNMP 简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 相关知识
    • WEB 应用程序运作方式简介
    • 什么是 LAMP
    • 什么是 LNMP
    • 什么是 WNMP
    • 补充:HTTP 协议

相关知识

WEB 应用程序运作方式简介

WEB 的本意是蜘蛛网和网,在网页设计中称为网页。现广泛译作网络、互联网等技术领域。日常生活中用户使用浏览器请求一个 URL ,这个 URL 标识着某个特定的服务器的特定资源,服务器接收到请求之后,服务器就把生成的 HTML 网页通过 HTTP 协议发送给浏览器。

早期的 WEB 页面内容简单,单纯使用 HTML 即可满足用户的需求,此时网站的主要内容是静态的。
在这里插入图片描述

随着用户需求的不断增加,不同的用户往往有着不同的需求,动态页面应运而生,动态页面有如下三个特点:

  1. “交互性”,即网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后 WEB 发展的大势所趋.

  2. “自动更新”,即无须手动地更新 HTML 文档,便会自动生成新的页面,可以大大节省工作量.

  3. “因时因人而变”,即当不同的时间,不同的人访问同一网址时会产生不同的页面。

动态页面的工作原理如下:
在这里插入图片描述

注:第三步根据脚本的类型使用对应的解析器进行解析并执行,例如 index.php 交给 php。

什么是 LAMP

在这里插入图片描述
LAMP 是一个开源的 WEB 开发平台,使用Linux作为操作系统,Apache 作为 WEB 服务器,MySQL 作为关系数据库管理系统,PHP 作为面向对象的脚本语言。一般情况下,Apache监听80端口,接受来自公共互联网的用户请求。

Apache 由开放社区开发和维护,是一个成熟的、功能丰富的服务器
MySQL 是一个开源的关系型数据库管理系统,用于存储应用程序数据。
PHP:编程语言。PHP 开源脚本语言与 Apache 配合使用,可帮助创建动态网页。例如从数据库中提取数据,只需将 PHP 代码放入想要动态化的页面部分。
四者的架构图如下所示:
在这里插入图片描述
来自公共互联网的请求首先被apache接收,apache 根据 url 所请求的资源类型(静态资源如html、json、png、jpg 等;脚本如 php、asp 等)进行调度,如果是静态文件,则直接访问对应的文件系统,将其内容返回,若为脚本如 index.php 则会交给对应的脚本解释器,index.php 对应 php 解释器,php 在执行 index.php 的代码后,得到的结果再返回给 apache,apache 将得到的内容再返回给用户。当 php脚本中存在操作数据库的代码,则会如图所示多出php访问数据库的流程。其他流程不变。
在这里插入图片描述

什么是 LNMP

LNMP与 LAMP 的区别在与使用 Nginx 作为 WEB 服务器。

Nginx 是一款小巧且高效的 Linux 下 WEB 服务器软件。相比 Apache,用 Nginx 作为 WEB 服务器:使用资源更少,支持更多并发连接,效率更高。

在这里插入图片描述

什么是 WNMP

由于平台有四层, LAMP 有时也称为 LAMP 堆栈。堆栈可以构建在不同的操作系统上。将这些软件用于 Windows 操作系统时,就称为 WAMP;使用 Macintosh 系统时称为 MAMP,使用 Solaris 系统时称为 SAMP。
W即windows,N即nignx,M即mysql,P即php
在这里插入图片描述

补充:HTTP 协议

HTTP 是在网络上传输 HTML 的协议,用于浏览器和服务器的通信。

HTTP 请求包含 request 和 response 两个部分,分别为浏览器请求服务器的请求报文与服务器响应请求的响应报文。

请求报文例如:

GET / HTTP/1.1
Host: www.sina.com.cn
User-Agent: Mozilla/5.0 xxx
Accept: */*
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8

第一行表示使用GET请求方式获取路径为/的资源,并使用HTTP/1.1协议,从第二行开始,每行都是以Header: Value形式表示的HTTP头,

比较常用的 HTTP Header 包括:

Host: 表示请求的主机名,因为一个服务器上可能运行着多个网站,因此,Host 表示浏览器正在请求的域名;
User-Agent: 标识客户端本身,例如 Chrome 浏览器的标识类似Mozilla/5.0 … Chrome/79,IE浏览器的标识类似Mozilla/5.0 (Windows NT …) like Gecko;
Accept:表示浏览器能接收的资源类型,如text/*,image/或者/*表示所有;
Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;
Accept-Encoding:表示浏览器可以支持的压缩类型,例如gzip, deflate, br。
HTTP Header 每行都以\r\n结束,如果遇到两个连续的\r\n,那么后面就是 HTTP Body。HTTP Body 通常出现在 POST 请求。

\r就是回到行首,\n就是到下一行的
‘\r’是回车,’\n’是换行,前者使光标到行首,后者使光标下移一格。通常用的Enter是两个加起来

POST请求例如:

POST / HTTP/1.1
Host: qh.qt.zdbc.baicuoa.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: UM_distinctid=176bb981a6a102-0958497cfbd0fb-4c3f207e-1fa400-176bb981a6c22d; CNZZDATA1277924430=1953373006-1609462947-%7C1624499868; CNZZDATA1277924487=1429083096-1609634137-%7C1624499327
Upgrade-Insecure-Requests: 1
Pragma: no-cache
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded
Content-Length: 4data

响应报文如下:


HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 21932
Content-Encoding: gzip
Cache-Control: max-age=300
<html>...网页数据...

服务器响应的第一行为版本号+空格+数字+空格+文本,其中数字2xx表示成功,3xx表示重定向,4xx表示客户端引发的错误,5xx表示服务器端引发的错误。

常见的响应代码有:

200 OK:表示成功;
301 Moved Permanently:表示该 URL 已经永久重定向;
302 Found:表示该 URL 需要临时重定向;
304 Not Modified:表示该资源没有修改,客户端可以使用本地缓存的版本;
400 Bad Request:表示客户端发送了一个错误的请求,例如参数无效;
401 Unauthorized:表示客户端因为身份未验证而不允许访问该 URL;
403 Forbidden:表示服务器因为权限问题拒绝了客户端的请求;
404 Not Found:表示客户端请求了一个不存在的资源;
500 Internal Server Error:表示服务器处理时内部出错,例如因为无法连接数据库;
503 Service Unavailable:表示服务器此刻暂时无法处理请求。

从第二行开始,服务器每一行均返回一个 HTTP 头。服务器经常返回的 HTTP Header 包括:

Content-Type:表示该响应内容的类型,例如text/html,image/jpeg;
Content-Length:表示该响应内容的长度(字节数);
Content-Encoding:表示该响应压缩算法,例如gzip;
Cache-Control:指示客户端应如何缓存,例如max-age=300表示可以最多缓存300秒。
在这里插入图片描述

这篇关于数据库安全-第一章 Mysql 安全基础-【web 环境搭建——LAMP-1】-LAMP LNMP 简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/618662

相关文章

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

mysql重置root密码的完整步骤(适用于5.7和8.0)

《mysql重置root密码的完整步骤(适用于5.7和8.0)》:本文主要介绍mysql重置root密码的完整步骤,文中描述了如何停止MySQL服务、以管理员身份打开命令行、替换配置文件路径、修改... 目录第一步:先停止mysql服务,一定要停止!方式一:通过命令行关闭mysql服务方式二:通过服务项关闭

手把手教你idea中创建一个javaweb(webapp)项目详细图文教程

《手把手教你idea中创建一个javaweb(webapp)项目详细图文教程》:本文主要介绍如何使用IntelliJIDEA创建一个Maven项目,并配置Tomcat服务器进行运行,过程包括创建... 1.启动idea2.创建项目模板点击项目-新建项目-选择maven,显示如下页面输入项目名称,选择

SQL Server数据库磁盘满了的解决办法

《SQLServer数据库磁盘满了的解决办法》系统再正常运行,我还在操作中,突然发现接口报错,后续所有接口都报错了,一查日志发现说是数据库磁盘满了,所以本文记录了SQLServer数据库磁盘满了的解... 目录问题解决方法删除数据库日志设置数据库日志大小问题今http://www.chinasem.cn天发

mysql主从及遇到的问题解决

《mysql主从及遇到的问题解决》本文详细介绍了如何使用Docker配置MySQL主从复制,首先创建了两个文件夹并分别配置了`my.cnf`文件,通过执行脚本启动容器并配置好主从关系,文中还提到了一些... 目录mysql主从及遇到问题解决遇到的问题说明总结mysql主从及遇到问题解决1.基于mysql

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

MySQL的索引失效的原因实例及解决方案

《MySQL的索引失效的原因实例及解决方案》这篇文章主要讨论了MySQL索引失效的常见原因及其解决方案,它涵盖了数据类型不匹配、隐式转换、函数或表达式、范围查询、LIKE查询、OR条件、全表扫描、索引... 目录1. 数据类型不匹配2. 隐式转换3. 函数或表达式4. 范围查询之后的列5. like 查询6