自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 cs架构和bs架构的区别

CS即Client/Server(客户端/服务器)结构,最大的分别就是电脑上需要安装一个指定的软件客户端程序,通过这个程序访问软件(如腾讯视频应用qq音乐应用等)BS即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),而客户端选用浏览器(Browse)运行软件。(如通过浏览器在线访问腾讯视频访问qq音乐)......

2022-07-15 19:42:48 6923 1

原创 Redis 缓存雪崩、缓存穿透、缓存击穿

缓存异常场景分类在实际生产环境中有时会遇到缓存穿透、缓存击穿、缓存雪崩等异常场景,为了避免异常带来巨大损失,我们需要了解每种异常发生的原因以及解决方案,帮助提升系统可靠性和高可用。缓存穿透是指用户请求的数据在缓存中不存在即没有命中,同时在数据库中也不存在,导致用户每次请求该数据都要去数据库中查询一遍,然后返回空。如果有恶意攻击者不断请求系统中不存在的数据,会导致短时间大量请求落在数据库上,造成数据库压力过大,甚至击垮数据库系统。(1)布隆过滤器(推荐)布隆过滤器(Bloom Filter,简称BF)由Bur

2022-07-13 10:46:23 196

原创 一文搞懂redis

你好,我是Redis,一个叫Antirez的男人把我带到了这个世界上。说起我的诞生,跟关系数据库MySQL还挺有渊源的。在我还没来到这个世界上的时候,MySQL过的很辛苦,互联网发展的越来越快,它容纳的数据也越来越多,用户请求也随之暴涨,而每一个用户请求都变成了对它的一个又一个读写操作,MySQL是苦不堪言。尤其是到“双11”、“618“这种全民购物狂欢的日子,都是MySQL受苦受难的日子。据后来MySQL告诉我说,其实有一大半的用户请求都是读操作,而且经常都是重复查询一个东西,浪费它很多时间去进行磁盘I/

2022-07-13 10:42:06 183 1

原创 一文了解23种设计模式

01 工厂方法 02 建造者模式 03 抽象工厂 04 原型模式 05 单态模式 06 适配器模式 07 桥梁模式 08 合成模式 09 装饰模式 10 门面模式 11 享元模式 12 代理模式 13 责任链模式 14 命令模式 15 解释器模式 16 迭代模式 17 调停者模式 18 备忘录模式 19 观察者模式 20 状态模式 21 策略模式 22 模板方法模式 23 访问者模式......

2022-07-11 18:06:07 230

原创 Pycharm十大常用快捷键

咱们写Python代码,至少得有一半是用 Pycharm 吧,这种傻瓜式的IDE学习成本低,不像VIM拿到手摸不着头脑。如果想让工具发挥出极致的效率,快捷键操作是必不可少的。有时候你敲几行代码,点几下鼠标,别人只要一个组合快捷键就能搞定。不仅姿势看起来帅,而且能达到事半功倍的效果。Pycharm中常用的快捷键其实没那么多,10个就足够啦!能满足日常90%的需求,这就推荐给大家。Alt + Enter 可以帮你快速修复当前的代码,例如,你如果引用了一个还没import进来的模块对象,你只要将鼠标移到当前有问题

2022-07-06 13:22:02 4080

原创 30个python面试必备题

1、冒泡排序2、计算x的n次方的方法3、计算aa + bb + c*c + ……4、计算阶乘 n!5、列出当前目录下的所有文件和目录名6、把一个list中所有的字符串变成小写:7、输出某个路径下的所有文件和文件夹的路径8、输出某个路径及其子目录下的所有文件路径9、输出某个路径及其子目录下所有以.html为后缀的文件10、把原字典的键值对颠倒并生产新的字典11、打印九九乘法表通过指定end参数的值,可以取消在末尾输出回车符,实现不换行。12、替换列表中所有的3为3a13、打印每个名字** 善于使用 rang(

2022-07-06 13:00:37 71

转载 Python代码实现十大经典排序算法

排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:关于时间复杂度:关于稳定性:名词解释:冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说

2022-07-06 12:56:48 128

原创 python自动化操作神器pyautogui使用

python中可以使用 selenium库实现对浏览器的自动化操作,但selenium库能操作的还是浏览器对象今天我们来聊一聊如何在桌面实现自动化操作。与浏览器页面自动化操作类似,桌面自动化操作也是需要定位鼠标在桌面的位置,然后根据定位的位置执行对应的操作。pyautogui是一个使用python的跨平台的操作鼠标和键盘的模块,非常方便使用。还支持一些简单的图像识别相关操作pip install pyautogui提示 需要安装提示需要 不行就 安装如果出现缺少模块 pyHook h

2022-07-06 10:35:11 2199

原创 requests使用详解

requests库是Python中可以用代码来模拟发送网络请求,并得到响应数据的一个第三方库##安装,3.1.3 基本使用格式response的常用属性res.encoding 查看响应正文的 编码格式res.text 查看响应正文的文本内容 返回的是一个字符串格式res.content 查看响应正文的文本内容 返回的是一个字节格式 如果获取图片数据或者音视频数据 通过它直接获取二进制数据并进行保存res.st

2022-06-27 12:32:56 3837 1

转载 如何用 Python 发送通知到微信?

常见的通知方式有:邮件,电话,短信,微信。短信和电话:通常是收费的,较少使用;邮件:适合带文件类型的通知,较正式,存档使用;微信:适合告警类型通知,较方便。这里说的微信,是企业微信。本文目的:通过企业微信应用给企业成员发消息。登录网页版企业微信 (https://work.weixin.qq.com),点击 应用管理 → 应用 → 创建应用上传应用的 logo,输入应用名称(债券打新),再选择可见范围,成功创建一个告警应用使用 Python 发送告警请求,其实就只使用到两个接口:获取 Token :http

2022-06-23 12:10:24 391

原创 三种状态保持机制 cookie session token的区别

cookie session token区别总结**cookie** - 缺点: 不安全 信息保存在客户端 用户可以查看修改删除 - 优点: 简单快速 **session** - 就是将用户信息保存在服务器端 然后返回对应标记号 是一个随机字符串 一般不会重复(通过标记号能够查到保存的信息) 后续有请求过来 提取cookie中标记 然后去根据标记到数据库查找数据并进行验证 - 优点: 存储在服务端 安全性相比cookie更高 - 缺点: 占用服务器端资源.....

2022-06-22 16:11:05 171

原创 通俗易懂了解50个IT专业术语

假设你是个妹子,你有一位男朋友,于此同时你和另外一位男生暧昧不清,比朋友好,又不是恋人。你随时可以甩了现任男友,另外一位马上就能补上。这是冷备份。假设你是个妹子,同时和两位男性在交往,两位都是你男朋友。并且他们还互不干涉,独立运行。这就是双机热备份。假设你是个妹子,不安于男朋友给你的安全感。在遥远的男友未知的地方,和一位男生保持着联系,你告诉他你没有男朋友,你现在处于纠结期,一旦你和你男朋友分开了,你马上可以把自己感情转移到异地男人那里去。这是异地容灾备份。假设你是个妹子,有一位男朋友,你又付了钱给一家婚姻

2022-06-22 12:26:26 293

原创 多种角度理解get和post区别

功能不同get: 表示获取 拿取 的意思 主要是从服务器上获取数据。 一般用于查询类的请求post:表示提交 主要是向服务器传送数据 一般修改类的操作 我们会用post请求但这不绝对 现在很多网站 即便是查询类的操作 也喜欢用post去做 因为这样可以把参数放在表单中这就涉及到下面的角度存放位置不同get一般把参数数据队列加到url中 请求正文一般为空 在url中也是可见的但post请求数据放在请求正文中 url中不可见 需要通过抓包查看参数安全性不同所以正因为存放位置的区别

2022-06-22 12:14:10 65

原创 常见信息头信息概览

Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/htmlAccept-Charset 浏览器可以接受的字符编码集。 Accept-Charset: iso-8859-5Accept-Encoding 指定浏览器可以支持的web服务器返回内容压缩编码类型。 Accept-Encoding: compress, gzipAccept-Language 浏览器可接受的语言 Accept-Language: en,zhAccept-Ranges 可以请求网页实体

2022-06-22 12:00:16 192

原创 HTTP请求和响应数据包结构

一个接口由发送请求 得到响应的过程 在底层数据传输的时候 发送的其实是请求数据包接受的其实是响应数据包。一个请求数据包由四部分构成第一部分 交代 请求方式 url地址 协议类型第二部分 交代请求头信息第三部分 空行 (用于分割请求头信息和请求正文 有的人会认为只有三部分 就是这部分没算)第四部分 请求正文通过fiddler工具抓取的百度的请求数据包 请求方式为get通过fiddler工具抓取的halo的请求数据包 请求方式为post可以看到post请求的请求正文有内容 因为pos

2022-06-22 10:46:10 747

转载 服务器常见状态码及对应含义

100——客户必须继续发出请求101——客户要求服务器根据请求转换HTTP协议版本200——交易成功201——提示知道新文件的URL202——接受和处理、但处理未完成203——返回信息不确定或不完整204——请求收到,但返回信息为空205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件206——服务器已经完成了部分用户的GET请求300——请求的资源可在多处得到301——删除请求数据302——在其他地址发现了请求数据303——建议客户访问其他URL或访问方式304——客户端已经执行了GET,但文件

2022-06-22 10:31:40 1095

原创 WebSocket与HTTP的区别

HTTP是单向的,客户端发送请求,服务器发送响应。举例来说,当客户端向服务器发送请求时,该请求以HTTP或HTTPS的形式发送,在接收到请求后,服务器会将响应发送给客户端。每个请求都与一个对应的响应相关联,在发送响应后客户端与服务器的连接会被关闭。每个HTTP或HTTPS请求每次都会新建与服务器的连接,并且在获得响应后,连接将自行终止。 HTTP是在TCP之上运行的无状态协议,TCP是一种面向连接的协议,它使用三向握手方法保证数据包传输的传递并重新传输丢失的数据包。HTTP可以运行在任何可靠的面向连接的协议

2022-06-22 10:26:59 518

原创 http和https区别

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之

2022-06-21 18:04:14 113 1

原创 http协议特点

Web系统的基础就是HTTP协议,HTTP协议是一个应用层协议,也就是TCP传输层的上一层协议,HTTP协议只定义传输的内容是什么,不定义如何传输(这是底层协议做的事),所以理解HTTP协议,只需要理解协议的数据结构及所代表的意义即可。HTTP协议的主要特点可概括如下(1)支持客户/服务器模式。(2)简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、POST、HEAD、PUT、DELETE等。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器

2022-06-21 17:54:54 5465

原创 url的组成部分

url全程是 统一资源定位符 uniform resource locator 我们可以根据这个地址定位到互联网上对应的资源当我们访问一个网页时,如 http://www.baidu.com 这个网址包含四个部分的内容:1)第一部分:协议类型 这里是http协议,如果是Https的服务器,那么其前缀将是https://或者当我们访问访问一个FTP站点时,前缀将会是ftp2)第二部分:主机名 这里www.baidu.com,是域名,当然也可以是IP地址,两者是等价的。域名的使用只是为了帮助用户更容易地

2022-06-21 16:14:12 4477

原创 一张图理解从浏览器地址栏输入url到显示页面的步骤(以HTTP为例)

1、首先,在浏览器地址栏中输入url2、浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作。3、在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址。4、浏览器向服务器发起tcp连接,与服务器建立tcp三次握手。5、握手成功后,浏览器向服务器发送http请求,请求数据包。6、服务器处理收到的请求,将数据返回至浏览器7、浏览器收到HTTP响应。根据情况选择关闭TCP连接或者保留重用8、如果得到的资源(静态)可以缓存,进行缓存8、

2022-06-21 13:49:57 1215

原创 什么是MVC?什么是三层架构?

MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。三层架构什么是mvc 什么是三层架构

2022-06-21 12:46:38 3606

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除