首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python请求-无法每次从CGI脚本获取新的响应

问题描述:

我正在使用Python发送请求到一个CGI脚本,但是无论我发送多少次请求,我都无法获取到新的响应。每次请求返回的都是相同的响应内容。请问这是什么原因,如何解决?

回答:

这个问题可能是由于缓存导致的。当你发送请求到一个CGI脚本时,服务器可能会将响应缓存起来,以提高性能。这样,无论你发送多少次请求,都会得到相同的响应内容。

为了解决这个问题,你可以尝试以下几种方法:

  1. 添加随机参数:在每次发送请求时,可以在URL中添加一个随机参数,以确保每次请求都是唯一的。例如,可以在URL末尾添加一个时间戳参数,如?timestamp=123456789
  2. 禁用缓存:你可以在请求头中添加Cache-Control字段,并设置为no-cache,以告诉服务器不要缓存响应。例如,在Python中使用requests库发送请求时,可以这样设置请求头:
代码语言:python
复制
import requests

headers = {'Cache-Control': 'no-cache'}
response = requests.get(url, headers=headers)
  1. 使用POST请求:如果你的CGI脚本支持POST请求,可以尝试使用POST请求而不是GET请求。POST请求不会被缓存,每次请求都会得到新的响应。

以上是解决这个问题的一些常见方法。根据你的具体情况,你可以选择适合你的方法来解决这个问题。

关于CGI脚本和Python请求的更多信息,你可以参考以下链接:

请注意,以上链接是腾讯云相关产品的介绍链接,仅供参考。你可以根据自己的需求选择适合的产品和服务提供商。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

解决在python中进行CGI编程时无法响应问题

参考链接: PythonCGI编程 【时间】2018.11.06  【题目】解决在python中进行CGI编程时无法响应问题  概述  在阅读《python编程》第一章CGI编程部分时,出现了无法响应问题...=text name=user>       2、响应python 代码----cgi-bin/cgi101....服务器服务  在cmd终端中将路径cd到cgi-bin\之前目录,输入命令  “python -m http.server --cgi 8081”开启服务  注意:--cgi 后面的是服务器端口,必须使用没有被其他进程占用端口...2、修改action响应地址  在HTML代码中action部分表示请求响应地址,应改为action=...四、修改后运行结果  注意:最后将响应pythonwen文件放在cgi-bin文件夹下,否则有的浏览器会出现501错误

1.2K30

零学习python 】92.使用Pythonrequests库发送HTTP请求和处理响应

params字典中包含了请求参数,其中type值为1,page值为2。requests.get()方法会自动将参数拼接到URL中,并发送GET请求。最后打印出了响应结果。...获取响应头信息 print(response.headers) 使用response.headers可以获取到服务器响应头部信息,包括Content-Type、Server、Date等。...获取响应体数据 a. 获取二进制数据 content = response.content print(type(content)) response.content返回响应内容二进制表示。...获取JSON数据 json = response.json() print(type(json)) print(json) response.json()将响应内容解析为JSON格式,并返回对应Python...总结:本段代码展示了通过requests库发送HTTP请求,并获取响应头部信息和不同格式响应体数据。

11610

万法归宗:CGI

虽然我们听说过JavaServlet,PythonWSGI。但其实Java、Python都是支持CGI,不仅如此,其他我们所熟知语言大都也都支持。...如post请求一个CGIURL,那么POST数据,CGI是通过标准输入来获取。 而CGI如何构造出数据(比如HTML页面)返回给浏览器呢?其实CGI本身只要向标准输出去写入数据即可。...此时CGI输出承担是HTTP协议响应部分,因此HTTP响应报头也要自己标准输出出来。...其实不然,这是因为CGI有一大硬伤: 每次HTTP请求CGI,Web服务器都有启动一个进程去执行这个CGI程序,即颇具Unix特色fork-and-execute。...彼时CGI职能是完成基本鉴权以及数据交换。 Restful风格API出现,让CGI获得了续命。CGI解析前端请求,再转发给对应后端;然后后端取回数据,给前端返回XML或JSON。

1.2K10

Python Web 部署方式大全

CGI规范允许Web服务器执行外部程序,并将它们输出发送给Web浏览器,CGI将Web一组简单静态超媒体文档变成一个完整交互式媒体。...CGI脚本工作流程: 浏览器通过HTML表单或超链接请求指向一个CGI应用程序URL。 服务器执行务器收发到请求。所指定CGI应用程序。...FastCGI是CGI发展改进而来。传统CGI接口方式主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。...明确请求模式。CGI 技术没有一个明确角色,在 FastCGI 程序中,程序被赋予明确角色(响应器角色、认证器角色、过滤器角色)。...负载均衡和远程处理,通过在网络上转发请求响应消息。 进行内容后处理,例如应用XSLT样式表。

1.5K40

tinyhttpd源码分析

GET 请求获取Request-URI所标识资源 POST 在Request-URI所标识资源后附加数据 HEAD 请求获取由Request-URI所标识资源响应消息报头 PUT 请求服务器存储一个资源...tinyhttpd默认cgi脚本是perl脚本,比如color.cgi,位于htdocs目录下。 ?...下面我想用python来实现cgi脚本,添加一些页面,为了更加了解cgi程序运行实质,不用python封装好cgi模块,完全手工打造。...这是一个表单,action指向register.cgi,method为post。下面看一下register.cgi,其实是个python脚本。 ?...代码意思是标准输入中读取post中数据,并将显示数据输出到标准输出中,对比一下流程图,更好理解。下面看一下运行效果。 ? ? ?

1.5K20

一边制造,一边讲解http状态码502|504|499|500

它表示网关没有从上游及时获取响应数据。...由于nginxphp-fpm读取数据超时时间为5s,所以在5s时科,nginx还未从php-fpm获取响应数据,于是返回504。...多见于服务之间调用,在业务架构中常常会分层设计,拆分为不同子系统或者微服务,这样系统之间就会常常通过http方式来请求,并且会设置每次请求超时时间,当请求请求时间内所调用的上游服务无返回,则会主动关闭连接...,导致了它无法完成对请求处理。...502是由于CGI由于在自身执行时间要求内无法按时完成,则无法返回给服务器正常响应,此时服务器会返回502。 504是CGI在服务器设置超时时间内无法按时返回响应,服务器则返回504。

8.6K61

Python socket 实现一个简单http服务器(post 与get 区别)、CGI、WSGI、MVC

一、python socket 实现简单http服务器 废话不多说,前面实现过使用linux c 或者python 充当客户端来获取http 响应,也利用muduo库实现过一个简易http服务器,现在来实现一个...支持CGI服务器程序接收到客户请求,根据请求URL,运行对应脚本文件。服务器会将HTTP请求信息通过环境变量方式传递给脚本文 件,并等待脚本输出。...CGI实现方式有很多,比如说使用Apache 服务器与Perl 写CGI脚本,或者Python 服务器与shell写 CGI 脚本。...对于POST 方法请求,它URL需要指向一个CGI脚本(也就是在cgi-bin或者ht-bin中文件)。...在实际应用中往往也会把数据库表操作认为是Model,通过从请求获取信息,进而在库表查询出需要替换url 变量值。

9.1K00

绕过Disable Functions来搞事情

目录给了AllowOverride权限 当前目录可写 原理简述 早期Web服务器,只能响应浏览器发来HTTP静态资源请求,并将存储在服务器中静态资源返回给浏览器。...当遇到动态脚本请求时,Web服务器主进程就会Fork创建出一个进程来启动CGI程序,运行外部C程序或Perl、PHP脚本等,也就是将动态脚本交给CGI程序来处理。...这样,每次用户请求动态脚本,Web服务器都要重新Fork创建一个新进程去启动CGI程序,由CGI程序来处理动态脚本,处理完成后进程随之关闭,其效率是非常低下。...当有动态请求进来时,Web服务器就是自己解析这些动态脚本,省得重新Fork一个进程,效率提高了。...Fast-CGI每次处理完请求后,不会kill掉这个进程,而是保留这个进程,使这个进程可以一次处理多个请求(注意与另一个Apache Mod CGI区别)。这样就会大大提高效率。

4.3K40

Python进阶】04、CGI编程

CGI规范允许Web服务器执行外部程序,并将它们输出发送给Web浏览器,CGI将Web一组简单静态超媒体文档变成一个完整交互式媒体。      ...2、Web服务器接收到请求信息后会解析URL,并查找访问文件在服务器上是否存在,如果存在返回文件内容,否则返回错误信息。 3、浏览器服务器上接收信息,并显示接收文件或者错误信息。...CGI程序可以是Python脚本,PERL脚本,SHELL脚本,C或者C++程序等。...这个cgi.py脚本是一个简单Python脚本脚本第一行输出内容"Content-type:text/html"发送到浏览器并告知浏览器显示内容类型为"text/html"。...例如: Content-type:text/html Expires: Date 响应过期日期和时间 Location: URL 用来重定向接收方到非请求URL位置来完成请求或标识资源 Last-modified

1.1K10

CGI与FastCGI

当我们在谈到cgi时候,我们在讨论什么   最早Web服务器简单地响应浏览器发来HTTP请求,并将存储在服务器上HTML文件返回给浏览器,也就是静态html。...SCRIPT_FILENAME CGI脚本完整路径 SCRIPT_NAME CGI脚本名称 SERVER_NAME 这是你 WEB 服务器主机名、别名或IP地址。...通过环境变量”QUERY_STRING” 获取get 方式提交内容,如果想获取post 提交内容可以通过getenv(“CONTENT-LENGTH”),Web服务器在调用使用POST方法CGI程序时设置此环境变量...cgi 与 fastcgi   CGI工作原理:每当客户请求CGI时候,WEB服务器就请求操作系统生成一个CGI解释器进程(如php-cgi.exe),CGI 一个进程则处理完一个请求后退出,下一个请求来时再创建新进程...FastCGI像是一个常驻(long-live)型CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病fork-and-execute 模式)。

1.8K20

PHP-FPM 性能配置优化

除 PHP 有 php-fpm 外,像 Python, Ruby, Perl, Tcl, C/C++, 和 Visual Basic 都有其各自 CGI 和 FastCGI 实现。...面对大量请求,进程大量创建和消亡使操作系统性能大大下降。 此外,由于地址空间无法共享,也限制了资源重用。...FastCGI 致力于减少网页服务器与 CGI 程序之间交互开销,从而使服务器可以同时处理更多网页请求。与为每个请求创建一个进程不同,FastCGI 使用持续进程来处理一连串请求。...,来选择是否创建、以及创建多少 CGI 进程,这些进程随时待命,等待处理 Web 服务器传送过来请求:PHP 7.2 FPM 进程池配置信息位于:/etc/php/7.2/fpm/pool.d/www.conf...然而,OPcache 是运行在 FPM 环境中,在命令行环境中调用此函数无效。必须是一个可以通过 HTTP 访问到脚本上来调用 opcache_reset() 才行。无法在命令行中执行。

6000

C++ CGIweb编程

客户与服务器之间HTTP连接是一种一次性连接,它限制每次连接只处理一个请求,当服务器返回本次请求应答后便立即关闭连接,下次请求再重新建立连接。...301 Moved Permanently 所请求页面已经转移至url。 302 Found 所请求页面已经临时转移至url。...404 Not Found 服务器无法找到被请求页面。 404.0 (无)–没有找到文件或目录。 404.1 无法在所请求端口上访问Web站点。 404.2 Web服务扩展锁定策略阻止本请求。...404.3 MIME映射策略阻止本请求。 405 Method Not Allowed 请求中指定方法不被允许。 406 Not Acceptable 服务器生成响应无法被客户端所接受。...该消息是以标准输入形式传给 CGI 脚本。 我们同样使用 cpp_get.cgi 程序来处理 POST 方法。

1.2K20

Web 开发人员需知 Web 缓存知识

尽管有些脚本的确是动态(意味着每次请求都有不同响应),还是有很多(如搜索引擎或数据库驱动)网站可以从缓存中受益。...另外脚本缓存之道就是使用age相关头部,相比Expires, Cache-Control: max-age更容易些,因为是相对时间,每次请求完成后重新设置,时间到了,再重新请求,再设置相对过期时间...实现不难,可让你脚本以持久连接(persistent connection)形式响应。这允许客户端在一个TCP/IP请求请求多个内容,而不是为每次请求单独建立连接,这样你网站相应会快很多。...Expires头是绕不过去,除非缓存(浏览器或者代理)空间不足才会删除副本,缓存副本会一直使用。 最有效方法是修改链接,这样会源服务器获取完整内容。...Python版本还可以包装任意CGI脚本。 服务器端包含 SSI(扩展名通常是.shtml)最早可以生成动态内容网站发布方案。

52920

关于CGI和FastCGI理解

1.3.CGI程序特点 1)高并发时性能较差: CGI程序每一次web请求都会有启动和退出过程,也就是最为人诟病fork-and-execute模式(每次HTTP服务器遇到动态请求时都需要重新启动脚本解析器来解析...所有的配置加载都只在FastCGI进程启动时发生一次,每次修改php.ini配置文件,只需要重启FastCGI程序(php-fpm等)即可完成平滑加载配置,已有的动态请求会继续处理,处理完成关闭进程...,新来请求使用加载配置和变量进行处理 5)FAST-CGI是较标准,架构上和CGI大为不同,是用一个驻留内存服务进程向网站服务器提供脚本服务。...此外,由于地址空间无法共享,也限制了资源重用。 关于FastCGI程序: 与CGI程序为每个请求创建一个进程不同,FastCGI使用持续进程(master)来处理一连串请求。...可能是由于进程任务分配不均匀导致。而这也导致了总体响应速度下降。而PHP-FPM合理分配,导致总体响应提到以及任务平均。

1.3K40

CGI & FastCGI

cgi是什么   最早Web服务器简单地响应浏览器发来HTTP请求,并将存储在服务器上HTML文件返回给浏览器,也就是静态html。事物总是不 断发展,网站也越来越复杂,所以出现动态技术。...SCRIPT_FILENAME CGI脚本完整路径 SCRIPT_NAME CGI脚本名称 SERVER_NAME 这是你 WEB 服务器主机名、别名或IP地址。...通过环境变量"QUERY_STRING" 获取get 方式提交内容,如果想获取post 提交内容可以通过getenv("CONTENT-LENGTH"),Web服务器在调用使用POST方法CGI程序时设置此环境变量...cgi 与 fastcgi   CGI工作原理:每当客户请求CGI时候,WEB服务器就请求操作系统生成一个CGI解释器进程(如php-cgi.exe),CGI 一个进程则处理完一个请求后退出,下一个请求来时再创建新进程...FastCGI像是一个常驻(long-live)型CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病fork-and-execute 模式)。

1.6K30

Python基础教程(十七):CGI编程

本文将详细介绍如何使用Python进行CGI编程,基础知识到实践案例,带你入门这一经典Web开发技术。 一、什么是CGI?...CGI脚本是一个接收HTTP请求并产生响应独立程序。当Web服务器接收到一个针对CGI脚本请求时,它会启动一个单独进程来执行该脚本,处理完请求后返回响应。...2、Web服务器接收到请求信息后会解析URL,并查找访问文件在服务器上是否存在,如果存在返回文件内容,否则返回错误信息。 3、浏览器服务器上接收信息,并显示接收文件或者错误信息。...三、Python CGI脚本结构 一个基本Python CGI脚本通常包含以下几个部分: Content-Type头:告诉浏览器返回内容类型。...四、实战案例 下面是一个简单Python CGI脚本示例,它接受用户输入并返回一个带有问候信息HTML页面。 #!

7410

有关Web 安全学习片段记录(不定时更新)

只要是提供数据输出服务器端程序都可以叫CGI,ASP/PHP/JSP这些都可以认为是,你用C/C++写一个可以提供数据输出服务器端bin文件,也叫CGI,至于python/perl/shell 等脚本当然也能写...,CGI 程序也是环境变量中读取。...cookie头中获取sessionId,进而server 端存储Session信息中获取相关验证信息,如user&pwd&email之类,与post过来信息进行比对(可能需要根据post数据字段查数据库...,以后每次请求把这个会话ID发送到服务器,我就知道你是谁了。有人问,如果客户端浏览器禁用了 Cookie 怎么办?...所谓Form Token即在输出表单地方增加一个隐藏域,值是一个随机数,提交请求时会带上这个数,Web应用程序在后台校验,如果是第三方站点的话是无法获知这个数

1.5K00

【愚公系列】2021年12月 Python教学课程 28-Web开发基础

在 BS 架构下,客户端只需要浏览器,应用程序逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取 Web 页面,并把 Web 页面展示给用户即可。 当然,Web 页面也具有极强交互性。...; CGI:由于静态 Web 页面无法与用户交互,比如用户填写了一个注册表单,静态Web 页面就无法处理。...ASP/JSP/PHP:由于 Web 应用特点是修改频繁,用 C/C++这样低级语言非常不适合 Web 开发,而脚本语言由于开发效率高,与 HTML 结合紧密,因此,迅速取代了 CGI 模式。...Python 诞生历史比 Web 还要早,由于 Python 是一种解释型脚本语言,开发效率高,所以非常适合用来做 Web 开发。...JavaScript 是为了让HTML 具有交互性而作为脚本语言添加,JavaScript 既可以内嵌到 HTML 中,也可以外部链接到 HTML 中。

74420

PHP-FPM发展史

CGI由来 早期web服务器,只能响应浏览器发来HTTP静态资源请求。...CGI工作原理 Web服务器一般只用来处理静态文件请求,当碰到动态脚本请求时,Web服务器主进程就会创建一个进程来启动CGI程序,也就是将动态脚本交给CGI程序来处理。...这样每次用户请求动态脚本,Web服务器都要重新去创建一个新进程去启动CGI程序,读取配置文件,初始化环境等重复性操作,CGI程序处理完动态脚本后又会随之关闭,这样周而复始,其效率是非常低下。...除了协议本身问题还有一些其他问题 比如 PHP-CGI变成php.ini配置后,需要重启php-cgi才能让配置生效,不可以平滑重启。 直接杀死PHP-CGI进程,php就不能运行了。...FastCGI是语言无关,可伸缩架构CGI开放扩展,它将CGI解释器进程保持在内存中,因此获取较高性能。

69620

关于php对象池

生命周期 对象池需要从php生命周期说起,php应用大部分都是web网站,而大部分web网站使用都是cgi模式进行运行,导致php生命周期跟随着请求结束而结束,从而没有对象池概念 cgi模式一次请求可以分为以下几步...针对这个问题,我们可以来测试下new一个对象消耗有多大 新建一个测试脚本: <?...顾名思义,对象池是一个池子,每次我们需要对象时里面拿一个,用完再放回去,这样又实现了对象复用,又实现了能同时处理多个请求 对象池意义 上面我们可能发现了,对象池如果对象太少,比如只有10个,那10个都被人用了...而出现101个请求之后,某个请求会因为cpu资源不够,处理将会变慢,直到其他请求处理好一个,腾出1%去处理请求 如果当出现200个请求,cpu由于分时调度(尽量使得所有请求处理时间尽量平均),会使得所有请求平均响应时间慢一倍...(如果有一个进程正常响应,那么就说明有几个请求需要慢2倍甚至更多) 再到后面,将会出现只能响应少数请求,其他请求全部超时无法正常响应宕机情况      上面的cpu资源争夺是其一,其二是消耗内存,如果同时处理太多进程

92020
领券