学习知识回顾随笔(远程连接MySQL|远程访问Django|HTTP协议|Web框架)

文章目录

  • 如何远程连接MySQL数据库
    • 1.创建用户来运行,此用户从任何主机连接到mysql数据库
    • 2.使用IP地址来访问MySQL数据库
  • 如何远程访问Django项目
  • Web应用
    • 什么是Web应用
    • 应用程序的两种模式
    • Web应用程序的优缺点
  • HTTP协议(超文本传输协议)
    • 简介
    • HTTP协议特性
    • HTTP数据格式
    • 常用的请求头
    • 常用的响应头
    • 常用的响应状态码
    • HTTP版本之间的区别
    • URL统一资源定位符
  • Web框架

如何远程连接MySQL数据库

1.创建用户来运行,此用户从任何主机连接到mysql数据库

  1. 要远程连接MySQL数据库,首先需要确保MySQL数据库允许远程连接:

在MySQL服务器上,确保my.cnf(或my.ini,具体文件名可能有所不同)配置文件中的bind-address属性设置为服务器的公共IP地址,或者设置为0.0.0.0以接受所有的IP地址。这样可以确保MySQL服务器监听远程连接请求。

	bind-address = 0.0.0.0

然后,确保MySQL服务器的防火墙已配置允许连接到MySQL端口(默认是3306)。


  1. 创建MySQL用户并允许远程连接:

在MySQL中创建一个用户,授予该用户远程连接的权限。例如,你可以使用以下命令:

CREATE USER 'your_username'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON your_database.* TO 'your_username'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;'''
这将创建一个用户名为your_username,密码为your_password的用户,
并允许该用户从任何主机('%')连接到MySQL服务器。
'''

  1. 连接到MySQL数据库:

使用MySQL客户端工具(如MySQL命令行工具、MySQL Workbench等)或编程语言中的MySQL连接库,通过提供远程MySQL服务器的IP地址、端口、用户名和密码连接到数据库。

	mysql -h your_mysql_server_ip -u your_username -p然后输入密码以完成连接。

2.使用IP地址来访问MySQL数据库

  1. 将你本机的IP地址告知给远端数据库

通过cmd命令“ipconfig”查询到以太网适配器 以太网的ipv4地址
在这里插入图片描述

  1. 给数据库设置访问权限

MySQL默认是不允许远程连接的,因为有很大的安全隐患,所以需要我们手动添加用户有权限去访问。

先通过cmd进入到MySQL中
在这里插入图片描述

  1. 然后配置远程连接权限
    1.配置连接权限授权全部权限: grant all on *.* to root@"自己的ip地址" Identified by "密码"仅授权select、update、insert和delete权限'只能对表数据进行增删改查操作,不能对数据库进行操作,比如添加表、天机表字段、修改表字段等'grant select,insert,update,delete on *.* to root@"自己的IP地址" Identified by "密码"2.需要让mysql数据库中的user表的host字段为%,接受远程控制请求update user set host="%" where user="root" and host = "localhost";3.然后刷新一下flush privileges;

  1. 连接MySQL数据库

登陆远程数据库需要指明远程数据库所在服务器的IP地址或者域名,以及端口号,

	mysql -h mysql服务器的IP地址 -P 端口号(通常为3306-u 用户名 -p密码       -h: mysql服务器的IP地址-P: 大写的P选项表示端口号,端口号默认为3306,可省略-u: 用户名-p: 小写的p表示密码,当-p后输入密码时,会直接登陆。当-p后不输入密码时,会要求输入密码,但密码不显示'显示密码登录'mysql -h192.168.1.90(IP地址) -P3306(端口号) -uroot -p1234'隐藏密码登录'mysql -h192.168.1.90(IP地址) -P3306(端口号) -uroot -p然后输入数据库密码即可。

小知识

 1.允许某个用户在任何主机可以访问mysql服务器GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%'IDENTIFIED BY '密码' WITH GRANT OPTION;FLUSH PRIVILEGES;%表示任何主机
例如: 你想myuser使用mypassword(密码)从任何主机连接到mysql服务器的话。
mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;'=============================================='2.允许某个用户在在指定的主机可以访问mysql服务器,在指定主机以外的主机则无法访问数据库GRANT ALL PRIVILEGES ON *.* TO '用户名'@'指定主机的IP地址'IDENTIFIED BY '密码' WITH GRANT OPTION;如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;

如何远程访问Django项目

  1. 首先需要再Django项目的settings配置文件中配置ALLOWED_HOSTS = ['*']
    在这里插入图片描述

  2. 然后需要给项目的HOST设置为‘0.0.0.0’
    在这里插入图片描述


  1. 防火墙配置

如果服务器有防火墙,确保允许从外部访问Django项目的端口。默认情况下,Django开发服务器使用端口8000,你需要确保该端口是打开的。

  1. 访问Django项目
	在浏览器中输入服务器的IP地址或域名,加上Django项目运行的端口号。例如,如果Django项目在端口8000上运行,你可以通过访问 http://192.168.x.x:8000/index 来访问。

Web应用

什么是Web应用

Web应用程序时一种可以通过Web访问的应用程序,用户只需要有浏览器即可,无需再安装其他软件

应用程序的两种模式

  • C/S(客户端------>>>>服务端)
    1. 也就是说这类程序一般独立运行。
    2. 网络协议一般都是软件自定制协议----->基本都是基于TCP协议
  • B/S(浏览器------>>>>服务端)
    1. 这类应用程序一般借助IE等浏览器来运行。
    2. 网络协议全是HTTP协议----->基于TCP协议

B/S本质也是C/S

Web应用程序的优缺点

优点:

  1. 只需要一个适用的浏览器即可,无需安装其他应用软件
  2. 节省用户的硬盘空间资源
  3. 它们无需更新,因为所有新的特性都在服务端上执行,从而自动传达到客户端
  4. 跨平台使用。例如:Windows、Mac、Linux等

缺点:严重依赖服务端的正常运行,一旦服务端出现问题、宕机,会直接影响客户端正常访问

Web应用程序时B/S架构的,所以我们需要自己写一个服务端,这里的Web服务端是我们使用socket套接字来实现的,以浏览器作为客户端,朝我们搭建的服务端发送数据,已经我们的服务端给浏览器返回数据的过程。

因为这里是用浏览器做客户端,就涉及到了HTTP协议的相关知识


HTTP协议(超文本传输协议)

简介

HTTP协议(Hypertext Transfer Protocol,超文本传输协议)是用于从www服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少,我们在浏览器的地址栏里输入的网站地址叫做URL(UniformResourceLocator,统一资源定位符)。

HTTP协议特性

	1.基于请求响应客户端发送请求,服务端回应响应。服务端永远不会主动给客户端发消息。如果想让服务端主动给客户端发送消息可以采用其他网络协议2.基于TCP/IP作用与应用层的协议3.无状态服务端不会保存客户端的状态(不保存客户端的状态信息)就是这个协议它不能够在浏览器中保存数据,而保存数据的是cookie、session、token等4./短连接客户端与服务端不会长久保持连接(两者请求响应之后立马断绝关系)

HTTP数据格式

请求格式

请求(Request) HTTP请求由客户端发起,通常是通过Web浏览器。请求由请求方法(如GET、POST等)、URL、协议版本、请求头部和请求体组成。

在这里插入图片描述

	1> 请求首行(请求方式'有很多种'  URL,协议名称及版本号)2> 请求头(一堆K:V键值对) \r\n\r\n3> 请求体:get请求一般没有请求体,post请求有请求体

在这里插入图片描述


响应格式

响应(Response) 服务器接收到请求后,会返回一个HTTP响应。响应包含一个状态码、响应头部和响应体。状态码指示请求的处理结果,例如,200表示成功,404表示未找到请求的资源。

在这里插入图片描述

	1> 响应首行(协议名称及版本号 ,响应状态码,状态码的原因短语)2> 响应头(一堆K:V键值对)\r\n\r\n3> 响应体 (一般情况下就是浏览器要展示给用户看的数据如HTML标签等)

在这里插入图片描述

以上有些HTTP协议知识可前去我的另一篇博客查看https://blog.csdn.net/achen_m/article/details/134083061?spm=1001.2014.3001.5501


常用的请求头

标头类型作用
Accept:描述客户端可接受的媒体类型。
Accept-Encoding:指定客户端支持的内容编码,例如gzip、deflate等。
Accept-Language:指定客户端希望接收的自然语言。
Cache-Control:指定请求/响应是否需要缓存,以及如何进行缓存控制。
Content-Type:在POST请求中,指定发送的数据类型,如表单数据、JSON等。
Cookie:包含客户端提交的cookie信息,用于保持状态。
Host:指定目标服务器的主机名和端口号。
User-Agent:包含了发起请求的用户代理,通常是浏览器或其他应用程序的标识。
Authorization:包含了客户端的认证凭据,用于进行身份验证。
Referer:指示请求的来源页面,用于标识请求是从哪个页面链接过来的。
If-Modified-Since:用于条件性GET请求,如果资源在指定日期后被修改过,则返回资源,否则返回304 Not Modified。

常用的响应头

标头类型作用
Content-Type:指定响应的媒体类型。
Content-Length:指定响应正文的长度。
Cache-Control:指定响应的缓存策略。
Server:包含了服务器的信息。
Set-Cookie:用于在客户端存储cookie信息,用于保持状态。
Location:在重定向时,指定新的URL。
WWW-Authenticate:当服务器需要进行身份验证时,指定客户端应该如何提供凭据。
Expires:指定响应过期的日期和时间。
Last-Modified:指定资源最后修改的日期和时间。
ETag:用于识别资源版本,支持条件性请求。

以上的一些HTTP常用的请求头和响应头,实际上还有很多其他头部字段,具体使用取决于特定的应用场景。
HTTP标准和相关规范定义了许多可用的头部字段,具体可以参考https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers


常用的响应状态码

状态码类别原因短语
1XXInformation(信息状态码)服务器以接收请求,正在处理
2XXSucess(成功状态码)请求正在处理完毕
3XXRedirecion(重定向状态码)需要进行附加操作以完成请求
4XXClient Error(客户端错误状态码)服务器无法处理请求
5XXServer Error(服务器错误状态码)服务器处理请求出错
'HTTP响应状态码是服务器对客户端请求的响应的一部分''1xx(信息性状态码):接收的请求正在处理'
100 Continue: 表示服务器已收到客户端的请求头,并且客户端应继续发送请求体。'2xx(成功状态码):请求正常处理完毕'
200 OK: 表示请求成功,通常在GET请求中返回请求的资源。
201 Created: 表示请求已成功,并且服务器创建了新资源。
204 No Content: 表示请求成功,但响应中没有实体的主体返回,通常在DELETE请求中使用。'3xx(重定向状态码):重定向'
301 Moved Permanently: 请求的资源已被永久移动到新的位置,客户端应更新其链接。
302 Found (或者临时重定向): 请求的资源暂时被移动到新的位置,客户端应继续使用原有的链接。
304 Not Modified: 表示资源未被修改,可以使用客户端的缓存。'4xx(客户端错误状态码):服务器无法处理请求'
400 Bad Request: 请求无效,服务器无法理解请求的语法。
401 Unauthorized: 请求需要身份验证。
403 Forbidden: 服务器拒绝请求,通常因为缺乏访问权限。
404 Not Found: 请求的资源未找到。'5xx(服务器错误状态码):服务器处理请求出错'
500 Internal Server Error: 通用的服务器错误消息,服务器遇到意外情况无法完成请求。
502 Bad Gateway: 服务器作为网关或代理,从上游服务器收到无效的响应。
503 Service Unavailable: 服务器当前无法处理请求,通常是因为维护或过载。

这只是HTTP响应状态码的一些示例,具体的状态码还有其他,每个状态码都有特定的含义,
可以帮助客户端了解服务器对请求的处理结果。详细的状态码定义可以参考
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status


HTTP版本之间的区别

HTTP协议有多个版本,每个版本都在之前的版本基础上进行了改进和扩展。以下是HTTP协议的主要版本及其主要区别:'HTTP/0.9:'
发布于1991年。
最初版本,非常简单,只支持GET请求,响应只包含HTML内容。
不支持头部信息,状态码等。'HTTP/1.0:'
发布于1996年。
引入了更多的请求方法(如POST)、头部字段(如Host)、状态码、以及支持多部分传输(multipart)等。
默认情况下,每个请求/响应建立一个新的连接,不支持持久连接。'HTTP/1.1:'
发布于1999年。
引入了持久连接,通过在头部使用Connection: keep-alive来实现,在同一个连接上可以发送多个请求和接收多个响应。
引入了管道化(pipelining),允许在一个连接上同时发送多个请求,而无需等待每个响应。
引入了块传输编码(chunked transfer encoding)以支持流式传输。
引入了Host头部,以支持同一服务器上的多个虚拟主机。'HTTP/2:'
发布于2015年。
完全重新设计了HTTP协议,引入了二进制协议、头部压缩、多路复用等功能,以提高性能。
允许在同一连接上同时发送多个请求和响应,减少了延迟。
使用头部压缩减小了传输的数据量。
支持服务器推送,允许服务器在客户端请求之前发送额外的资源。'HTTP/3:'
在HTTP/2的基础上进行改进,使用QUIC协议作为传输协议。
QUIC协议是一个基于UDP的协议,具有更低的连接建立和重新连接的延迟。
引入了一些安全性和性能方面的改进,包括零轮询(zero round-trip time)连接建立等。
HTTP/3仍在不断发展,是一个相对较新的协议。'''
总结:
HTTP/0.9:功能简陋,只支持GET方法,只能发送HTML格式字符串。
HTTP/1.0:支持多种数据格式,增加POST、HEAD等方法,增加头信息,状态码等,每次只能发送一个请求(无持久连接)
HTTP/1.1:默认持久连接、请求管道化、增加缓存处理、增加Host字段、支持断点传输分块传输等。
HTTP/2.0:二进制分帧、多路复用、头部压缩、服务器推送
'''

新版本的HTTP通常包含了对性能、安全性和功能的改进,但是2.x和3.x版本仅是官方自己设计的,本质上浏览器是没有这种兼容,因此以获得更好的性能和更安全的通信。选择使用的协议版本通常取决于服务器和客户端的支持情况。所以市面上主流还是1.1版本


URL统一资源定位符

URL(uniform resource locator)统一资源定位系统,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

格式:

	协议://IP:端口(80)/路径?aaa=xxx&bbb=yyy'http协议,如果不写端口号--》默认是80'?之前的是请求路径,?之后的是请求数据部分

Web框架

Web框架是用来进行Web应用开发的一个软件架构,主要用于动态网络开发。开发者在基于Web框架实现自己的业务逻辑。Web框架实现了很多功能,为实现业务逻辑提供了一套通用方法。

框架的意思就是别人提前写好的框架(就是一堆目录和文件),我们只需要按照人家的要求在固定的位置写代码即可
具体知识2可以去我的这篇博客查看https://blog.csdn.net/achen_m/article/details/134289596?spm=1001.2014.3001.5502,此处只做补充

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

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

相关文章

Airtest自动化测试工具实战演练

一开始知道Airtest大概是在年初的时候,当时,看了一下官方的文档,大概是类似Sikuli的一个工具,主要用来做游戏自动化的,通过截图的方式用来解决游戏自动化测试的难题。最近,移动端测试的同事尝试用它的poco库…

LCM-LoRA模型推理简明教程

潜在一致性模型 (LCM) 通常可以通过 2-4 个步骤生成高质量图像,从而可以在几乎实时的设置中使用扩散模型。 来自官方网站: LCM 只需 4,000 个训练步骤(约 32 个 A100 GPU 小时)即可从任何预训练的稳定扩散 (SD) 中提取出来&#…

sed文本 免交互

目录 什么是sed 概念 格式 基本用法 命令的选项 打印第三行 打印日志文件 打印奇数行 打印偶数行 第三行退出 删除第三行 sed在不打开文件的情况下修改文件内容 在后面添加 选项a 在字符中间添加 \n 实现追加换行 全部追加 在前面插入 选项i 替换 选项c …

Java精品项目源码基于SpringBoot的智慧园区管理系统(v67)

Java精品项目源码基于SpringBoot的智慧园区管理系统(v67) 大家好,小辰今天给大家介绍一个智慧园区管理系统,演示视频公众号(小辰哥的Java)对号查询观看即可 文章目录 Java精品项目源码基于SpringBoot的智慧园区管理系统(v67)难度…

【图像分割】【深度学习】PFNet官方Pytorch代码-PFNet网络损失函数模块解析

【图像分割】【深度学习】PFNet官方Pytorch代码-PFNet网络损失函数模块解析 文章目录 【图像分割】【深度学习】PFNet官方Pytorch代码-PFNet网络损失函数模块解析前言PM定位模块损失函数FM聚焦模块损失函数总结 前言 在详细解析PFNet代码之前,首要任务是成功运行PF…

压缩包文件丢失?4个正确找回方法分享!

“我有一个很重要的压缩包保存在电脑上,但是不知道为什么里面有些文件丢失了。有什么方法可以快速找回压缩文件?请大家给我支支招吧!” 如果我们的文件太多,将它们放在压缩包中不仅能让文件更有序,还能更合理的节省电脑…

LD_PRELOAD劫持

LD_PRELOAD劫持 <1> LD_PRELOAD简介 LD_PRELOAD 是linux下的一个环境变量。用于动态链接库的加载&#xff0c;在动态链接库的过程中他的优先级是最高的。类似于 .user.ini 中的 auto_prepend_file&#xff0c;那么我们就可以在自己定义的动态链接库中装入恶意函数。 也…

tp8 使用rabbitMQ(3)发布/订阅

发布/订阅 当我们想把一个消息&#xff0c;发送给 多个消费者的时候&#xff0c;我们把这种模式叫做发布/订阅模式&#xff0c;比如我们做两个消费者&#xff0c;其中一个消费者把消息写入磁盘中&#xff0c;别一个消费者把消息结果输出到屏幕上&#xff0c;就要用到发布订阅模…

产品化和商品化

我们经常会在IT产业听过以下岗位&#xff1a; 1、产品序列&#xff1a;产品行销经理 2、产品序列&#xff1a;产品经理、需求分析师、产品详细设计工程师、UIUE设计师 3、产品序列&#xff1a;业务架构师、应用架构师、数据架构师、技术架构师 4、研发序列&#xff1a;创新原型…

Java 图片验证码需求分析

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 图片验证码 需求分析 连续因输错密码而登录失败时&#xff0c;记录其连续输错密码的累加次数&#xff1b;若在次数小于5时&#xff0c;用户输入正确的密码并成功登录…

前K个高频单词(Java详解)

一、题目描述 给定一个单词列表 words 和一个整数 k &#xff0c;返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率&#xff0c; 按字典顺序 排序。 示例1&#xff1a; 输入: words ["i", "love&…

浅谈硬件连通性测试几大优势

硬件连通性测试是确保硬件系统正常运行、提高系统可靠性和降低生产成本的关键步骤。在现代工程和制造中&#xff0c;将连通性测试纳入生产流程是一个明智的选择&#xff0c;有助于确保硬件产品的质量和性能达到最优水平。本文将介绍硬件连通性测试的主要优势有哪些! 一、提高系…

游戏测试和软件测试有什么区别

针对手游而言&#xff0c;游戏测试的本质是APP&#xff0c;所以不少手游的测试方式与APP测试异曲同工&#xff0c;然而也有所不同。APP更多的是具有一种工具&#xff0c;一款APP好不好用不重要&#xff0c;关键点在于实用。而游戏则具有一种玩具属性&#xff0c;它并不见得实用…

基于Python+requests编写的自动化测试项目-实现流程化的接口串联

框架产生目的&#xff1a;公司走的是敏捷开发模式&#xff0c;编写这种框架是为了能够满足当前这种发展模式&#xff0c;用于前后端联调之前&#xff08;后端开发完接口&#xff0c;前端还没有将业务处理完毕的时候&#xff09;以及日后回归阶段&#xff0c;方便为自己腾出学(m…

图像异常检测研究现状综述

论文标题&#xff1a;图像异常检测研究现状综述 作者&#xff1a;吕承侃 1, 2 沈 飞 1, 2, 3 张正涛 1, 2, 3 张 峰 1, 2, 3 发表日期&#xff1a;2022年6月 阅读日期 &#xff1a;2023年11月28 研究背景&#xff1a; 图像异常检测是计算机视觉领域的一个热门研究课题, 其目…

leetCode 39.组合总和 + 回溯算法 + 剪枝 + 图解 + 笔记

39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合 can…

2015年五一杯数学建模A题不确定性条件下的最优路径问题解题全过程文档及程序

2015年五一杯数学建模 A题 不确定性条件下的最优路径问题 原题再现 目前&#xff0c;交通拥挤和事故正越来越严重的困扰着城市交通。随着我国交通运输事业的迅速发展&#xff0c;交通“拥塞”已经成为很多城市的“痼疾”。在复杂的交通环境下&#xff0c;如何寻找一条可靠、快…

HarmonyOS 数据持久化 Preferences 如何在页面中对数据进行读写

背景介绍 最近在了解并跟着官方文档尝试做一个鸿蒙app 小demo的过程中对在app中保存数据遇到些问题 特此记录下来 这里的数据持久化以 Preferences为例子展开 废话不多说 这里直接上节目(官方提供的文档示例:) 以Stage模型为例 1.明确preferences的类型 import data_prefer…

印刷企业建设数字工厂管理系统的工作内容有哪些

随着科技的不断进步&#xff0c;数字工厂管理系统在印刷企业中的应用越来越广泛。这种系统可以有效地整合企业内外资源&#xff0c;提高生产效率&#xff0c;降低生产成本&#xff0c;并为印刷企业提供更好的业务运营与管理模式。本文将从以下几个方面探讨印刷企业建设数字工厂…

如何用postman实现接口自动化测试

postman使用 开发中经常用postman来测试接口&#xff0c;一个简单的注册接口用postman测试&#xff1a; 接口正常工作只是最基本的要求&#xff0c;经常要评估接口性能&#xff0c;进行压力测试。 postman进行简单压力测试 下面是压测数据源&#xff0c;支持json和csv两个格…