HTTP和wsgi基本介绍

SpringBoot实战(二十八)集成 Collabora Online 实现在线编辑 阅读详情

一.HTTP

1.结构图


如图,HTTP的基本结构解释这样的-----客户端发送一个Request请求到服务端,服务端在返回一个Response回应给客户端。

客户端就是我们平常所用的浏览器了,如baidu,google,firefox等等都是客户端,而服务端一般是一些比较大的服务器了。


2.Request和Response








Request和Response的大概样子就是这样了,其中报头部分里面的很多参数没给出来,有需要的话请百度一下,我就不一一列举。
不过其中的一些重要参数必须得扩展讲一讲。
                       Request:get和post的区别
                           get:从服务端请求获得指定的消息,有大小要求,太长的请求不适合用GET方法。请求方法包含在Request头                                     部,因此,很容易被其他人看到,可能造成用户信息泄露等风险。
                           POST:向服务端传递信息,无大小要求,包含在正文里面,更加安全。但是传递速度较慢,而且有可能改变                                          服务端的数据。



                    Response:主要是cookie
                             因为HTTP本身是无状态的,所以用户每一次打开网页都会加载一次网页,对于新网页来说没什么问题,但是                              如果打开已经浏览过的网站,又得重新加载,这对客户端和服务端都会造成一定压力,因此,cookie被创造                                出来解决这个问题。

                             

                                                                      如图,就是一个百度cookie的例子,cookie一般包含name,password,id等很多信息,用来验证用户是否登陆                                 过该网站。第一次登陆,服务器会给你生成一个cookie,下次再登陆时,Request头部就会自动把cookie发                                 送过去,通过验证。
                                不过,cookie也是有坏处的。在cookie存活的生命周期内(expires参数),cookie是保存在用户的电脑里                                   的,用户可以查看甚至修改cookie,基于这一原因,有的骇客会利用cookie的一些参数来盗取用户的信息,                                 也有一些专门注入cookie的病毒。所以有的用户会关掉cookie(浏览器中可以设置),但这样,用户不得不                                 承担更多的流量。(虽然有的cookie加密过,但还是不安全)
                                为了解决这个问题,session出现了。为保证读取速度够快,session储存在服务器的内存里,但是 这又                                       给服务器带来很大的压力。
                                                                        两者都有利弊,就看用户怎么选择了。


三.wsgi

1.wsgi和cgi介绍

cgi

在介绍wsgi(website server gateway interfaces)之前,我先说说cgi(common gateway interfaces 通用网关接口)吧。

                                                                       



cgi的作用就是处理包装Server传过来的参数,然后把处理后的参数分配到绑定的脚本上去运行,脚本又结合数据库,进一步处理数据,最后又把数据还给cgi,cgi再次处理包装后,传给Server,Server再传给Client。



wsgi

wsgi是专用于Python的一种网关规范,并不是一个实际的应用程序,只是规范了处理函数的输入和输出格式。
Python本身由于灵活性强,被称之为“胶水语言”,与之对应的服务器种类就比较多,web框架也比较多,没有什么超级大boss之类的。但是由于服务器与app之间定义的接口没有一种规范,很多时候,用Python写的脚本代码无法在各个服务器上通用,这与它当初被设计时的灵活性完全不同,于是,pep3333中对这些欣慰定了一个规范,方便Python代码的通用,但wsgi并不强制要求代码非要要这样写,毕竟以方便程序员而生。






wsgi详解

wsgi把web组件分为三类:web Server , middleware, web app。
middleware:包装处理Server传过来的的信息,包装在environ,start_request参数中,传给app处理。
app:处理数据
server:








1.服务器创建socket,监听Port,并等待客户端connect。
2.当有请求时,Server解析client信息放到environ中。
3.handler处理这个HTTP请求,并把method,path放入environ中。
4.wsgi handler再把Server信息也放入environ中。
5.client,Request,Server信息全放入environ中。
6.wsgi handler调用注册的wsgi app ,并将environ和回调函数传入给wsgi app。

7.wsgi app 讲Response header/status/body回传给wsgi handler。

8.最终handler通过socket将信息Response传回给client。


总结,有没有觉得这样编程会是一个很繁琐的过程?而且无趣?

不要急,很多web框架已经被开发出来了,你的web编程效率将大大提高。

下面给出一些Python web框架:

Django:用得最多,但是文件比较大

flask/bottle:都是轻量级的web框架,用来开发一些小的web应用效果会更好。


UE5实现建筑剖切效果 阅读详情

相关推荐

脑电分析中的频谱特征提取 —— 从理论到实践

本文系统介绍了脑电信号(EEG)频谱特征提取方法及其应用。EEG信号通过频谱分析可分为Delta、Theta、Alpha、Beta和Gamma等具有明确生理意义的频段。文章详细讲解了功率谱密度、频带功率、相对功率、频谱熵等关键特征的计算方法,并提供了Python实现示例,包括模拟数据和真实CHB-MIT癫痫数据集的处理流程。这些频谱特征在脑机接口、情绪识别、疲劳监测和癫痫检测等领域具有重要应用价值。文章强调频谱特征结合时域和非线性特征可提升分析效果,为EEG研究提供了实用指导。

qq_32516809的博客 1441

HTTP服务器搭建WSGI

在Web应用中,服务器把网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,让浏览器显示出来。而浏览器和服务器之间的传输协议是HTTP,所以: HTML是一种用来定义网页的文本,会HTML,就可以编写网页; HTTP是在网络上传输HTML的协议,用于浏览器和服务器的通信。

过期的秋刀鱼 776

IEEE 754浮点数与十六进制转换:从原理到实战避坑指南

在计算机系统中,数据的二进制表示与内存布局是底层开发的核心基础。IEEE 754标准定义了浮点数在内存中的精确格式,包括符号位、指数位和尾数位的分工,以及零、无穷大和NaN等特殊值的编码。理解这一原理对于处理原始字节流至关重要,尤其是在涉及跨平台或跨设备通信时。其技术价值在于,它能帮助开发者从根本上解决数据解析错误、通信协议不一致以及程序调试中的“灵异”问题。在嵌入式开发、网络通信(如Modbus协议)和固件解析等应用场景中,浮点数与十六进制的转换是高频操作。然而,字节序(大端/小端)是转换过程中最常见的“

weixin_33835103的博客 430

Django框架的HTTP请求之WSGIRequest

Django框架的HTTP请求之WSGIRequestWSGIRequest对象http请求的url详解:WSGIRequest对象常用属性META:存储的客户端发送上来的所有header信息WSGIRequest对象常用方法QueryDict对象 WSGIRequest对象 Django在接收到http请求之后,会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象,并且作为视图函数第一个参数传给视图函数。 这个参数就是django视图函数的第一个参数,通常写成request。 在这个

weixin_47678857的博客 1966

Android AMS——AMS初始化(二)

Android AMS 也是一个系统服务,属于系统服务中的引导服务,在 startBootstrapServices() 方法中启动。这里我们就来看一下 ActivityManagerService 的启动流程。

小旭的专栏 777

074.多任务学习:在YOLO基础上同时进行分割、关键点检测

本文探讨了在YOLOv5模型中实现检测、分割和关键点多任务的技术方案。通过分层特征抽取策略(检测用深层、分割用浅深融合、关键点用中层)解决特征共享问题;采用不确定性加权方法自动平衡多任务损失;设计了支持三种标签的数据流处理方式;并分享了推理部署时的后处理技巧。实践表明,合理的多任务设计可以提升主任务性能,但需权衡标注成本和推理效率。最终方案选择在训练时引入分割作为辅助任务,推理时仅保留检测和关键点,实现了检测mAP提升2.3%的优化效果。

2603_95664987的博客 45

python中遵循WSGI协议的HTTP服务器

一、WSGI协议 WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web server如何与web application通信的规范。 WSGI协议其实是定义了一种server与application解耦的规范,即可以有多个实现WSGI server的服务器,也可以有多个实现WSGI app...

Terminator-H 719

2026华为OD面试手撕代码真题目录

一般面试的时候每一轮技术面都会出一到两个手撕代码题,这些题的特点就是,非常短小,易于理解。不可能会再出阅读理解一样的机试题的。但是这些题目也非常注意基本功,很注意细节的处理,一般都是easy+medium题目。但是大家一定要注意,因为大部分面试官上面一开始就会让你做题,直接看你所有的做题过程(防止有人水平一般,机试就网上找的答案的蒙混过关),手撕代码题会给你后面的面试定一个基调。

MISAYAONE的博客 9万+

详解wsgi的http请求过程

一、概述wsgi服务启动并监听http请求的流程:1.利用paste.deploy模块的loadapp函数加载指定服务(如proxy)的配置文件,获取到用户的application,即业...

m0_47495420的博客 686

从 VL02N 拣配到 ABAP 自动化,读懂 SD_DELIVERY_UPDATE_PICKING 的位置和风险

文章摘要:SAP SD模块中,SD_DELIVERY_UPDATE_PICKING函数模块用于处理出库交货单的拣配确认,更新交货项目的拣配数量。该函数适用于未启用WM/EWM的传统SD流程,能确保拣配状态与标准交货处理逻辑同步,比直接修改数据库更安全。但在S/4HANA Cloud等新环境中,应优先使用API_OUTBOUND_DELIVERY_SRV等公开发布接口。使用该函数时需注意参数完整性和按交货单整体处理的原则,避免逐项提交导致的数据不一致问题。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 245

深入理解 DDR5 Bank Group 与并行调度机制

Bank Group架构和并行调度机制,是DDR5性能跃升的核心秘密!理解它们才能写出高效调度程序,设计出性能强劲又稳定的DDR5系统。🎯记住:Bank Group不是简单的分组,而是高速并行的“魔法钥匙”,巧用它,你的DDR5设计将爆发惊人性能!

weixin_43199439的博客 312

Python WSGI HTTP 服务器 Gunicorn介绍

Gunicorn是一个纯Python的WSGI HTTP服务器,用于运行Python Web应用程序。本文介绍了Gunicorn的使用方法的注意事项。

记录应用与学习笔记,Python、算法、工具、踩坑... 955

手把手教你学simulink(69.3)--毫米波5G/6G 系统场景实例设计并实现基于Simulink的毫米波多用户MIMO通信系统模型

毫米波频段(30 GHz到300 GHz)因其高带宽和高速率特性,成为5G和未来6G通信系统的理想选择。然而,毫米波信号的传播特性较差,容易受到大气吸收、雨衰、建筑物遮挡等因素的影响。为了克服这些挑战并提高通信容量,多用户MIMO(MU-MIMO, Multi-User Multiple-Input Multiple-Output)技术被广泛应用。多用户MIMO技术通过在基站和多个用户之间同时传输多个数据流,充分利用空间资源,从而显著提升系统容量和频谱效率。

MHD0815的博客 493

Gunicorn(Green Unicorn)介绍(高效Python WSGI HTTP服务器,为生产环境设计,用于Django、Flask、FastAPI等程序部署)gevent、uvicorn

Gunicorn 是 Python Web 生态中不可或缺的部署工具,凭借其高性能、灵活性和易用性,成为 Django、Flask 等框架的首选服务器。无论是小型项目还是企业级应用,通过合理配置 Gunicorn,都能实现高效、稳定的 Web 服务。

Dontla的博客 1275

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Python Web开发之WSGI

Python Web开发之WSGI WSGI(全称Web Server Gate Interface,Web服务器网关接口)是Python为了规范和简化Web服务开发过程,定义了一种Web服务器和应用框架之间的简单而通用的接口标准规范,即规定了请求的URL到后台处理函数之间改如何实现。WSGI在Python Web开发中地位显著,但是仅通过它开发Web还是过于底层,应用较广的那些Django、Falsk等开发框架,都是在WSGI基础上抽象了一层,使得更加专注于业务应用设计,避免过多精力耗费在网...

Keivn_666 8822

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Django之WSGI浅谈

一、什么是Web框架 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统。 浏览器与服务器之间发起HTTP请求: 1.浏览器发送一个HTTP请求; 2.服务器收到请求,生成一个HTML文档; 3.服务器把HTML文档作为HTTP响应的Body发送给浏览器; 4.浏览器收到HTTP响应,从HTTP Bod...

weixin_30872157的博客 2981

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

WSGI & uwsgi & wWSGI 深入介绍 及区别

介绍WSGI WSGI是一种WEB服务器网关接口。 是一个Web服务器(如nginx)与应用服务器(如uWSGI)通信的一种规范(协议)。 在生产环境中使用WSGI作为python web的服务器。Python Web服务器网关接口,是Python应用程序或框架和Web服务器之间的一种接口,被广泛接受。WSGI没有官方的实现, 因为WSGI更像一个协议,只要遵照这些协议,WSGI应用(Ap...

H_sen's Blog 2496

WSGI和ASGI

是一个快速的,自我驱动的,对开发者和系统管理员友好的应用容器服务器,完全由 C 编写,实现了WSGI协议,uwsgi,http等协议。WSGI是python语言基于http协议模式开发的,不支持websocket协议,而ASGI的诞生解决了python中的WSGI不支持当前的web开发中的一些新的协议标准,同时ASGI支持原有模式和Websocket的扩展,即ASGI是WSGI的扩展。WSGI和ASGI,都是基于Python设计的网关接口(Gateway Interface,GI)。

00 后码农一枚,痴迷代码,以键为剑,以思为芒。于 优快云 镌刻编程成长,愿与诸君共探技术星河,同铸数字梦想。 1466

Nginx, WSGI, Django之间的关系

概览 对 Nginx,WSGI(或者 uWSGI,uwsgi),Django,这几者的关系一存存在疑惑。通过查阅了些资料,总算把它们的关系理清了。  总括来说,客户端从发送一个 HTTP 请求到 Django处理请求,分别经过了 web服务器层,WSGI层,web框架层,这三个层次。不同的层次其作用也不同,下面简要介绍各层的作用。                        图1:web服...

neo949332116的博客 3285

专业术语分享--WSGI接口,HTTP

1,WSGI接口 VS API接口1,WSGI接口 VS API接口底层铁轨列车服务。

2401_88935031的博客 664

5分钟弄懂WSGI和ASGI

WSGI 是一个用于Python Web应用程序和Web服务器之间的简单调用约定。它是Python标准库的一部分,由PEP 3333定义。WSGI的主要特点是同步和阻塞,它适用于处理同步的HTTP请求。ASGI 是一个用于Python异步Web服务器和应用程序之间的标准接口。它由Django Channels项目引入,旨在支持WebSocket、HTTP2等协议。ASGI的主要特点是异步非阻塞,它能够更好地处理并发请求。

Turbo.AI,专注AI工程化 3097

WSGI学习笔记

关于flask建立web时对于wsgi的心得

weixin_63151583的博客 951

python_WSGI接口

WSGI:Web Server Gateway Interface WSGI接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求。我们来看一个最简单的Web版本的“Hello, web!”: def application(environ, start_response): start_response(‘200 OK’, [(‘Content-Type’, ‘text/ht...

295

Python WSGI学习总结

1.WHAT?(什么是wsgi,它用来做什么?) WSGI的全称是Web Server Gateway Interface,翻译过来就是Web服务器网关接口。具体的来说,WSGI是一个规范,定义了Web服务器如何与Python应用程序进行交互,使得使用Python写的Web应用程序可以和Web服务器对接起来。WSGI一开始是在PEP-0333中定义的,最新版本是在Python的PEP-3333定...

pansaky的博客 7134

python使用WSGI接口实现简单网页

Python Web 介绍Python的Web服务器分为服务器程序和应用程序。服务器程序负责接收客户端的请求发送给应用程序,应用程序负责处理请求返回给服务器程序。为了方便应用程序的开发,我们把常用的功能封装起来,成为各种Web开发框架,例如 Django, Flask, Tornado。而框架是需要和服务器程序配合的,为了统一不用的框架,人们建立了一个标准,这就是WSGI。 WSGI(Web Se

小鹏残月 1504

WSGI接口

Web应用开发可以说是目前软件开发中最重要的部分。而一个Web应用的本质就是: 浏览器发送一个HTTP请求; 服务器收到请求,生成一个HTML文档; 服务器把HTML文档作为HTTP响应的Body发送给浏览器; 浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示。 如果上述步骤由自己来实现。不过,接受HTTP请求、解析HTTP请求、发送HTTP响应都是苦力活,如果我们自己来写这些底层

zhouxinkai311的专栏 682
上一篇: my first blog
下一篇: Python有关爬虫的一些总结
zeroist
博客等级 码龄12年 0粉丝 3原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值