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

Python请求头部显示"301“,而get返回"200”

问题描述:Python请求头部显示"301",而GET返回"200"

答案:这个问题涉及到HTTP请求的响应状态码。HTTP请求头部中的状态码是服务器对客户端请求的响应结果的一种标识。常见的状态码包括200、301、404等。具体解释如下:

  1. "301"状态码表示永久重定向,即请求的资源已经被分配了新的URL。在Python中,当使用requests库发送请求时,如果服务器返回的状态码为301,那么表示该资源已被永久移动到了一个新的位置。服务器会在响应头部的Location字段中提供新的URL地址,客户端应该更新自己的URL来进行后续的访问。
  2. "200"状态码表示请求成功,服务器成功返回了请求的资源。这意味着Python请求的网址对应的资源存在,并且服务器成功返回了相应的内容。

针对这个问题,可能出现的情况有以下几种:

情况1:Python请求的网址重定向到了新的URL地址,返回了301状态码。这种情况下,我们可以通过查看响应头部的Location字段来获取新的URL地址,并根据新的URL地址进行后续访问。

情况2:Python请求的网址没有发生重定向,服务器直接返回了请求的资源,并返回了200状态码。这种情况下,我们可以直接使用返回的响应内容进行后续处理。

根据具体情况,我们可以使用Python的requests库来发送请求,并通过查看响应的状态码来判断是否发生了重定向。以下是一个示例代码:

代码语言:txt
复制
import requests

url = "http://example.com"  # 替换为你的请求网址

response = requests.get(url)

if response.status_code == 301:
    new_url = response.headers['Location']
    print("请求发生了重定向,新的URL地址为:", new_url)
    # 根据新的URL地址进行后续访问

elif response.status_code == 200:
    content = response.text
    print("请求成功,返回的内容为:", content)
    # 根据返回的内容进行后续处理

else:
    print("请求失败,状态码为:", response.status_code)
    # 其他处理逻辑

需要注意的是,上述代码只是一个示例,具体的实现方式可能因为不同的情况而有所调整。另外,此处并未提及具体的腾讯云相关产品和链接地址,如有需要,可以结合具体的场景选择适合的腾讯云产品进行使用。

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

相关·内容

基础篇-Python发送get请求《如何放请求头、参数、获取返回内容》

❞ 目录 一、Python 命名规范 二、发送 get 请求 1.安装 requests 2.发送 get 请求 3.如何判断发送 get 请求要不要传请求头部?...4.传入请求头 5.权限被拒:403 - Forbidden: Access is denied 三、response 的返回内容还有其它更多信息 一、Python 命名规范 1.是英文字符、下划线__...先在 fiddler 中去掉请求头部,用这个接口发下请求试试,如果是正常返回 200 就可以不传头部,如果在工具中发送请求后,提示 403 - Forbidden: Access is denied,那么就需要传头部...a.cookies 获取返回的 cookie。 a.text字符串方式的响应体,会自动根据响应头部的字符编码进行解码。...a.raise_for_status() 失败请求(非 200 响应)抛出异常。

5.7K10

python 搭建flask web框架,以及应用,get,post请求返回json数据实现

搭建flask web框架 环境准备 Python安装 根据自己所需要的环境,可前往官网进行下载python,https://www.python.org/downloads/ 安装,并设置poth环境变量...一个简单的接口就完成了 2、get请求及参数获取方式 获取get接口返回的参数,可以使用request.args.get(“参数名“) 来接收 from flask import Flask from...name=hello时,就会显示name变量,即hello post请求以及参数获取方式 获取post接口返回和参数,可以使用request.form.get(“参数名“) 来接收 from flask..._ == ‘__main__’: app.run(host=’127.0.0.1′,port=5000)#本地地址,和端口号 当我们访问 localhost:5000时,body中传输name值,就会显示...name变量,即hello 如何返回json数据 导入模块jsonify,便可以返回json做接口数据 from flask import Flask,jsonify from flask import

1.4K30
  • python requests模块详解

    requests是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests不用urllib2呢?...也许有人认为这样可以通过判断和正则来获取跳转的状态码了,其实还有个更简单的方法: 前两个例子很正常,能正常打开的返回200,不能正常打开的返回404。...但第三个就有点奇怪了,那个是百度搜索结果中的302跳转地址,但状态码显示200,接下来我用了一招让他原形毕露: 只要加上一个参数allow_redirects,禁止了跳转,就直接出现跳转的状态码了,...{ import requests # r = requests.get('http://www.zhidaow.com') # # print(r.request.headers) #自定义请求头部...('http://www.zhidaow.com', headers=headers) print(r.request.headers['User-Agent']) {3.11 自定义请求头部 伪装请求头部是采集时经常用的

    2.4K10

    HTTP协议详解

    2) GET 和 POST 的参数传递也是不同的,GET 请求是将参数拼加到 URL 上进行参数传递的, POST 是将参数写入到请求正文中传递的。...3)GET 请求一般是幂等的, POST 请求一般是不幂等的. (如果多次请求得到的结果一样, 就视为请求是幂等的)。 4)GET可以被本地缓存,POST不能被本地缓存。...5) GET 请求的参数会保存在历史记录中, POST 请求的参数不会保留到历史记录中。 3.4 常见请求报头 Content-Type 表示请求的 正文 中的数据格式。...以下 是关于两者依赖 Location 选项的详细说明: HTTP 状态码 301(永久重定向): • 当服务器返回 HTTP 301 状态码时,表示请求的资源已经被永久移动到新的位 置。...对于 type 为 submit 类型来说 , value 就对应了按钮上显示的文本。

    11510

    Http协议状态码总结

    2. 200~299成功状态码 状态码 说明 200 ok 请求已成功,请求所希望的响应头和数据体都随此响应返回 201 created 请求已被接受,新资源已依据请求的需求要建立(到达处理程序)。...203 non-authoritative information 服务器成功处理请求,但返回的实体头部元信息不是来自原始服务器上有效的确定集合,而是来自本地或第三方的拷贝。...请求,浏览器会禁止重定向,除非用户确认;http/1.0发送post请求,响应的是301,接下来重定向的也会变成get请求 302 Move temporarily 临时重定向,其他与301一样。...但cache-control或expires头可以缓存 303 see other 当前请求在另一个url上,客户端应该采用get,303不能缓存,第二个请求可以;http/1.1处理303与302是一致的...,响应中应该包含allow头部 406 not acceptable 客户端可以指定自己愿意接受什么样的资源,如果服务端不能提供返回此状态码 5. 500~599状态码 状态码 说明 500 internal

    98850

    Django之视图层

    一、视图函数   一个视图函数,简称视图,是一个简单的python函数,接收web请求返回web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误等。...在函数中必须写一个request的参数,然后必须要有返回值,中间的逻辑随便,整个函数写在哪里也无所谓,只要python目录下就行,但我们默认规定,视图函数一般都写在每个应用下面views.py文件里。...具体的头部信息取决于客户端和服务器,下面是一些示例: CONTENT_LENGTH —— 请求的正文的长度(是一个字符串)。...is_anonymous() 返回True 不是False。 is_authenticated() 返回False 不是True。...,然后再把首页的HTML文件发给浏览器 中间有两次请求 301和302的区别   301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的

    1.7K10

    网络编程基石课 大话网络协议,探究通信奥秘-基础指南

    HTTP 报文结构请求报文:请求行:包含请求方法(GET、POST 等)、请求 URL 和 HTTP 版本。请求头部:包含元数据,如主机、用户代理等。...请求体:包含实际发送的数据(POST 请求时使用)。响应报文:状态行:包含 HTTP 版本、状态码(200、404 等)和状态描述。响应头部:包含元数据,如内容类型、内容长度等。...响应报文包含状态行、响应头部、空行和响应主体。客户端处理响应:客户端接收到响应报文后,解析响应并呈现内容(如在浏览器中显示网页)。4. 常用 HTTP 方法GET用于请求指定的资源。...HEAD类似 GET 方法,但只请求资源的头部信息,不返回主体。OPTIONS用于请求指定资源的通信选项(HTTP 方法支持情况)。PATCH用于局部更新资源。5....HTTP 状态码1xx 信息响应100 Continue101 Switching Protocols2xx 成功200 OK201 Created202 Accepted3xx 重定向301 Moved

    9400

    HTTP协议经典面试题整理及答案详解

    方法 描述 是否包含主体 GET 从服务端获取指定信息 否 POST 向服务端发送待处理的数据 是 HEAD 从服务端获取指定信息的头部 否 PUT 向服务端发送数据并替换服务端上指定的数据 是 OPTIONS...101 Switching Protocols 说明服务端正在根据客户端的指定,将协议切换成Update头部所列的协议。 200 OK 请求没有问题,主体包含了所请求的数据。...客户端应该继续显示原来的数据。 205 Reset Content 仍然没有主体部分,但客户端应该清除它所显示的数据。 206 Partial Content 成功执行了一部分或者一个范围内的请求。...301 Moved Permanently 请求的URL已经被移除,响应报文中的Location头部包含现在资源的URL。...306 - 未使用 307 Temporary Redirect 类似于301,但客户端应该使用Location头部给出的URL临时请求,将来的请求仍应是老的URL。

    71310

    【在Linux世界中追寻伟大的One Piece】应用层协议HTTP

    GET方法 用途:用于请求URL指定的资源。 示例:GET /index.html HTTP/1.1 特性:指定资源经服务器端解析后返回响应内容。...C++ // curl -i 显示 $ curl -i www.baidu.com HTTP/1.1 200 OK Accept-Ranges: bytes Cache-Control...示例:OPTIONS * HTTP/1.1 特性:返回允许的方法,如GET、POST等。...200 OK 访问网站首页,服务器返回网页内容。 201 Created 发布新文章,服务器返回文章创建成功的信息。 204 No Content 删除文章后,服务器返回“无内容”表示操作成功。...以下是关于两者依赖Location选项的详细说明: HTTP状态码301(永久重定向): 当服务器返回HTTP 301状态码时,表示请求的资源已经被永久移动到新的位置。

    10210

    HTTP协议,到底是什么鬼?

    1.GET为获取资源数据 get方法用于请求指定的页面信息,并返回请求消息的主体 2.POST为提交资源数据 post方法用于向指定的资源提交数据 3.PUT为更新资源数据 4.DELETE为删除资源数据...状态行,HTTP/1.1为表示使用的协议是HTTP的版本,我们可以看到状态码常见返回200 0k”代表是服务器成功响应了此次请求,消息报头,与HTTP请求头部一样,格式为“属性名:属性值",客户端可以根据此获取服务器端响应的信息...有200,301,302,304,404,500,403。 我们最常见的状态码为200,状态码200表示服务器响应成功,服务器找到了客户端请求的内容,并将内容发送给了客户端。...状态码404表示服务器上没有该资源,或者说是服务器上没有找到客户端请求的资源,是最常见的请求错误码。 状态码301和状态码302 状态码301表示临时跳转。...状态码302代表的是永久性的重定向。 ? 在这里插入图片描述 2xx: 200请求已经成功,202为服务器已经接受请求,但尚未处理,204为服务器成功处理了请求,但不需要返回如何实体内容。

    89430

    Android:都快面试了,还不赶紧复习下HTTP!

    请求路径 HTTP1.1:HTTP版本 请求方式: GET:获取资源 POST:增加或修改资源 PUT:修改资源 DELETE:删除资源 请求路径: 服务器以路径作为依据,返回用户所需的内容。...说明了浏览器进行 HTTP 内部请求的原理没有那么复杂的,只是将请求数据按照一定的格式排版再发送到服务器。 服务器也按照一定的格式进行数据返回,这便是 HTTP 的响应部分。...响应部分 //状态行 HTTP/1.1 301 Moved Permanently //头部信息 Server: openresty Date: Tue, 16 Mar 2021 15:38:14 GMT...> openresty 其中,头部信息和内容跟请求数据格式一致,就不再多说,重点看看状态行: HTTP/1.1 301 Moved...服务器收到请求,需要请求者继续执行操作。 100 (继续发送) 101(正在切换协议) 2xx:请求成功。 200(成功) 201(创建成功) 3xx:重定向。需要进一步操作以完成请求

    50300

    python 404_python检测404页面

    某些网站为了实现友好的用户交互,提供了一种自定义的错误页面,不是显示一个大大的404 这样虽然提高了用户体验,但是在编写对应POC进行检测的时候如果只根据返回的HTTP头部信息判断,则很可能造成误报...为了判断两个页面的相似度,采用Python的simhash库,这个库具体实现的算法我不太懂,但是Python的好处就是:不懂无所谓,直接拿来用就行。..., 301, 302] #当前可能是404页面的http请求返回值 #自己构造404url,以便收集一些404页面的信息 for path in self._404_path: for path in..._404_code:可能返回404页面的响应码,如果响应码为这些,则需要对页面进行判断 类在初始化时需要传入一个域名,根据这个域名来拼接几个不存在的或者会被防火墙拦截的请求并提交这些请求,得到返回信息...然后提交正常的http请求并获取响应信息, 如果响应码为404则返回True,否则再状态码是否在_404_code列表中,最后再与之前保存的404页面信息进行比较得到结果。

    1.1K10

    通过curl 来对比http状态码301和302

    可类比于浏览器中的 fetch curl 不加参数直接发送get请求 --head --head 发送 HEAD 请求 --include 打印request Header reponse Body curl...next=%2F 说明肯定发生了重定向 直接curl http://zhihu.com 返回301 也说明发生了重定向 我们详细看下执行curl --head --location http://zhihu.com...next=%2F 图片 第三次响应 200 成功 图片 301 & 302 这里我们看到了请求 http://zhihu.com 返回301 永久重定向 301 301 Moved Permanently...说明请求的资源已经被移动到了由 Location 头部指定的 url 上,是固定的不会再改变。...请求https://www.zhihu.com 返回302 临时重定向 HTTP 302 Found 重定向状态码表明请求的资源被暂时的移动到了由该 HTTP 响应的响应头 Location 指定的 URL

    1.3K30

    python爬虫开发之Request模块从安装到详细使用方法与实例全解

    Request模块定制请求头 如果你想为请求添加 HTTP 头部,只要简单地传递一个 dict 给 headers 参数就可以了。...Request模块响应状态码 我们可以检测响应状态码: r = requests.get('http://httpbin.org/get') r.status_code 200 为方便引用...Response.history 是一个 Response 对象的列表,为了完成请求创建了这些对象。这个对象列表按照从最老到最近的请求进行排序。.../' r.status_code 200 r.history [<Response [301] ] 如果你使用的是GET、OPTIONS、POST、PUT、PATCH或者DELETE 那么你可以通过...如果 HTTP 请求返回了不成功的状态码, Response.raise_for_status() 会抛出一个 HTTPError 异常。 若请求超时,则抛出一个 Timeout 异常。

    1.2K10

    一文入门 HTTP 协议

    客户端发送一个请求给服务器,然后服务器返回一个响应。 请求(Request) 一个 HTTP 请求由客户端发起,通常由一个请求行、请求头部、空行和请求体组成。...请求请求行包含请求的方法、请求的URL和HTTP协议的版本。 GET /index.html HTTP/1.1 在这个例子中: GET请求方法,表示获取指定资源。...PUT: 请求服务器存储一个资源,通常要指定存储的位置。 DELETE: 请求服务器删除指定资源。 HEAD: 类似于 GET 请求,但服务器只返回头部信息,不返回实际内容。...例如,常见的状态码: 200 OK: 请求成功。 201 Created: 请求已经被实现,而且有一个新的资源已经依据请求的需要建立。...204 No Content: 服务器成功处理了请求,但不需要返回任何实体内容。 301 Moved Permanently: 被请求的资源已永久移动到新位置。

    20010

    常用 HTTP 状态码

    200 OK​状态码 200 OK 表明请求已经成功。默认情况下状态码为 200 的响应可以被缓存。不同请求方式对于请求成功的意义如下:GET: 已经取得资源,并将资源添加到响应的消息体中。...301 Moved Permanently​HTTP 301 Moved Permanently 说明请求的资源已经被移动到了由 Location 头部指定的 url 上,是固定的不会再改变。...所以最好将 301 状态码用作 GET 或 HEAD 方法的响应,而对于 POST 则改用 308 Permanent Redirect,因为此状态码会禁止更改请求方法。...这通常是在一些安全的方法(safe),例如GET 或HEAD 或在请求中附带了头部信息: If-None-Match 或If-Modified-Since。...在重定向过程中,请求方法和消息主体不会发生改变,然而在返回 301 状态码的情况下,请求方法有时候会被客户端错误地修改为 GET 方法。

    9500

    PHP基础面试题 - 第六天

    2.表单中get和 post 提交方法的区别?...1.GET提交数据会附在URL里,所以是明文传输,POST是放置在HTTP包里,地址栏不会显示 2.GET传参数会有大小的限制,因浏览器和操作系统的不同不同。...POST传参数理论上不受限,但是一般会认为设定。3.POST安全性比GET高 3....HTTP 协议 中几个状态码的含义 :503 500 401 200 301 302 200 客户端请求成功 301 请求的网页已永久移动到新位置 302 服务器目前从不同位置的网页响应请求 401 请求未经授权...3、最关键的,只需要画出正确的“轮廓”(还记得httpwatch 等工具打印出来的头部吗?那就是“轮廓” 的含义),也会有分数,但如果,链“”都写错了,那么就很遗憾了。

    46830
    领券