【问题标题】:HTTP response code different every time i run the script\python 2.7每次运行脚本\python 2.7 时,HTTP 响应代码都不同
【发布时间】:2016-12-31 13:50:07
【问题描述】:

我编写了简单的脚本来检查 url 是否受错误 404 的影响。

当我使用 404 在 url 上运行脚本时,它确实返回了正确的响应,但是有时它返回了不同的响应(503),我不明白为什么会这样,我已经在许多其他 URL 和结果永远不一致。有人会这样解释为什么我的结果会不断变化,即使实际的 url 状态没有变化??

提前感谢您的帮助

我尝试使用以下模块:

urllib,urllib2,请求

所有这些都产生了相同的不一致结果。

这里是脚本:

import requests

for url in ['https://www.amazon.es/gp/product/B00QTVL0T4']:
    response = requests.get(url)
    response.status_code
    print(response)

响应 [404] 和响应 [503](不正确)

import urllib

result=''

#***** paste url into square bracket ****#

for url in ["https://www.amazon.es/gp/product/B003ODEJZ2",'https://www.amazon.fr/gp/product/B01H801C9C']:
    a=urllib.urlopen(url)
    e=a.getcode()
    if e==404:
        result+=(url+" Error_404 "+"\n")
    else:
        result+=(url+" Link_OK "+"\n")
print result

III

import urllib2
for url in ['https://www.amazon.es/gp/product/B003ODEJZ2','https://www.amazon.fr/gp/product/B01H801C9C','https://www.amazon.de/dp/B00B8PRE1Y']:
    try:
        connection = urllib2.urlopen(url)
    except urllib2.HTTPError, e:
         if e.getcode()==404:
             print (url+" Error_404")
         else:
             print(url+" Link_Ok")

【问题讨论】:

  • 我猜服务器可能过载,它会丢弃一些请求,所以503这种情况下状态是正常的

标签: python-2.7 http-status-code-404 python-requests urllib2 urllib


【解决方案1】:

503 的原因通常是“服务不可用”,这意味着处理您的请求的任何东西都找不到支持服务来提供响应。这可能由物理或软件提供的负载均衡器(F5s、HAProxy 等)、CDN(Fastly、Cloudflare 等)或正在运行但没有合适的应用程序可联系的 Apache 或 Nginx 之类的东西返回(无论出于何种原因)。

由于您示例中的 URL 是 Amazon URL,因此 CDN 可能会返回 503。CDN(如 Fastly)使用 Varnish,并且 Varnish 在以下情况下会返回 503:

  • 后端服务器返回 503,因此 Varnish 将其转发
  • 后端服务器返回了一个不可解析的响应

有时 CDN 可能会返回 503:

  • CDN 从源读取超时
  • CDN 连接到源站超时
  • CDN 无法读取/写入源
  • 源服务器拒绝来自 CDN 的连接
  • CDN 找不到到原点的路由
  • 源的 TLS 配置错误

(还有很多其他问题)

所以说真的,我们不太可能告诉您为什么会收到 503。您需要更多地反思响应并查找相关文档。

【讨论】:

  • 非常感谢 sigmavirus24 !我会更详细地检查回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-19
  • 2015-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多