mini_web
文章平均质量分 74
自写miniweb服务器
68岁爱用飘柔
纵有疾风起,人生不言弃.
展开
-
IO多路复用知识点
I/O多路复用在日常使用socket时,程序经常会在accepc或者recv的时候进行阻塞。这是因为此时的I/O模式是阻塞I/O。也就是当你遇到需要从内核向进程复制数据时,当前进程会一直等待。直到有数据进入才会解堵塞。下面我们来整体的说一说面试中I/O的一些题目。I/O模型一个输入操作通常包括两个阶段:等待数据准备好从内核向进程复制数据对于一个套接字上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待数据到达时,它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复制到应用进程缓原创 2021-03-10 14:52:26 · 883 阅读 · 0 评论 -
自建mini_web服务器04:建立与mysql连接
自建Mini_Web服务器(4):建立与mysql连接传送门一、回顾 之前我们用socket写了一个服务器,能够让浏览器访问资源,后来我们将动态资源剥离开来,再然后我们引入了路由功能,现在我们将使用我们的mysql使得整个网页活起来。二、数据准备2.1 创建数据库create database stock_db charset=utf8;2.2 选择数据库use stock_db2.3 导入数据source stock_db.sql2原创 2021-01-10 18:12:47 · 130 阅读 · 0 评论 -
自建mini_web服务器03:实现路由功能
Mini_Web服务器(3)添加路由功能一、回顾 第一次我们使用socket套接字创建了同时处理各种业务的服务器,然后在第二次我们将动态资源分离出来单独写了一个框架,但是框架很是简陋也没有将数据库的知识放入,接下来我们就来实现这个功能。二、路由 路由即url(统一资源定位符),是浏览器访问服务器时的钥匙,通过这个浏览器告诉服务器我想要什么,而服务器可以准确的给与浏览器这个东西。那么我们的路由应该放在我们的服务原创 2021-01-10 16:16:44 · 203 阅读 · 0 评论 -
自建mini_web服务器02:实现动态资源与静态资源分离
Mini_Web服务器(2)实现动态资源请求一、回顾二、面向函数改为面向对象三、WSGI协议3.1简易的web_frame框架四、实现基本的web动态服务器4.0服务器的基本架构图:4.1 文件格式4.2 web/mini_frame.py4.3 web_server.py五、修改服务器的文件结构5.1 文件结构5.2 dynamic/mini_frame.py5.3 web_server.py六、显示页面6.1 dayamic/mini_frame.py七、添加shellrun.sh注意:八、添加READ原创 2021-01-09 15:50:30 · 225 阅读 · 0 评论 -
自建mini-web服务器01
Mini-Web服务器一、socket1.1 TCP与UDP的区别1.2 setsockopt1.3 TCP的创建流程二、HTTP协议2.1 请求GET格式2.2 请求POST格式2.3 响应格式三、实现返回固定内容的服务器3.1代码实现3.2实现页面3.3收到的请求报文四、实现返回用户需要的页面4.1 代码实现4.2 页面实现4.3 收到的请求报文五、实现多进程版服务器5.1 代码实现六、实现多线程版服务器6.1 代码实现七、实现协程版服务器7.1 代码实现八、实现单进程、线程、非阻塞的服务器8.1 代码原创 2020-12-27 22:04:20 · 843 阅读 · 0 评论 -
url编解码
URL的编解码在平常使用url的时候,我们复制一个网页到另一个地方会发现编码是乱的,此时再去浏览这个网页就会发现还是可以出来的。其实这只是一个正常的现象,我们从浏览器输入网址,然后这个url经过编码发送给服务器,服务器再转发给我们的框架,框架将值存放如mysql,所以此时如果是按值放入的是经过编码的url值,要想获得正确的值必须解码。python3下可以使用``urllib.parse`函数>>> import urllib.parse>>> print(urll原创 2021-01-11 11:39:44 · 222 阅读 · 0 评论 -
伪静态、静态、动态url
伪静态、静态和动态的区别目前开发的网站其实真正意义上都是动态网站,只是URL上有些区别,一般URL分为静态URL、动态URL、伪静态URL,他们的区别是什么?静态URL静态URL类似 域名/news/2012-5-18/110.html 我们一般称为真静态URL,每个网页有真实的物理路径,也就是真实存在服务器里的。优点是:网站打开速度快,因为它不用进行运算;另外网址结构比较友好,利于记忆。缺点是:最大的缺点是如果是中大型网站,则产生的页面特别多,不好管理。至于有的开发者说占用硬盘原创 2021-01-09 15:57:14 · 174 阅读 · 0 评论 -
WSGI协议与python
WSGI PythonWeb服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是Python应用程序或框架和Web服务器之间的一种接口,已经被广泛接受, 它已基本达成它的可移植性方面的目标。 简单了说,就是服务器(nginx)与应用程序框架(django)之间的纽带,它规定了双方通信的标准。因此不管是什么服务器,不管是什么框架只要遵守了WSGI接口协议的都可以利用WSGI进行相关操作。一、wsgi 在以前,选择 Python web原创 2021-01-07 13:06:55 · 206 阅读 · 0 评论 -
解决git一会出现一会不出现
解决git在屏幕上出现但是在右击文件却不出现注:以下的git是我自己本地系统的git路径,你需要换成你自己的git路径。 前几天刷系统,导致很多东西需要重新配置,让人最为苦恼的就是git了,git在重装之后首先是右键不显示,以为只需更新就好了,就下载了git最新版本然后覆盖以前的版本。可是还是没有(据说是要下载在c盘才能自动添加,可是我上次就是在d盘,还是自己加了莫名问号) 在还是没有出现之后就去配置了注册表,原创 2021-01-04 15:14:30 · 370 阅读 · 0 评论 -
网络通信过程
网路通信过程 在现实中,如果一台电脑想要上网,那就需要插入网线。与此同时,你的电脑就会分配一个ip给你,你可以根据这个ip进行一些“有趣”的操作。一、 两台电脑间通信 平时,如果想让两台电脑之间进行通信,可以通过一条网线将两个电脑进行相连。我们只需要设定这两台电脑的ip和子网掩码即可。 例如:一台电脑的ip地址为192.168.1.2,那么此时另一台ip应该为1原创 2020-12-29 17:49:14 · 1404 阅读 · 0 评论 -
html协议
HTTP协议一、基础概念1.1 URI和URL1.2 请求和响应报文报文基本结构请求报文响应报文二、HTTP 方法GET:获取资源POST: 传输实体主体PUT: 传输文件HEAD:获得报文首部DELETE:删除文件OPTIONS:询问支持的方法TRACE:追踪路径CONNECT:要求用隧道协议连接代理PATCH: 对资源进行部分修改三、HTTP 状态码1XX 信息2XX 成功3XX 重定向4XX 客户端错误5XX 服务器错误四、HTTP首部4.1 首部字段预览通用首部字段请求首部字段响应首部字段实体首部字原创 2020-12-26 16:12:51 · 776 阅读 · 0 评论 -
TCP三次握手、四次挥手
一、TCP三次握手1.1简介 按层次分,TCP 位于传输层,提供可靠的字节流服务。 所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠地传给对方。一言以蔽之, TCP 协议为了更容易传送大数据才把数据分割,而且 TCP 协议能够确认数据最终是否送达到对方。确保数据能到达目标为了准原创 2020-12-24 14:24:03 · 200 阅读 · 0 评论