首页 > 其他分享 >HTTP响应码、响应头、网址、重定向

HTTP响应码、响应头、网址、重定向

时间:2024-10-21 21:48:21浏览次数:9  
标签:HTTP 重定向 res urllib 响应 https print

HTTP响应码、响应头、网址、重定向

可以通过response对象的getcode()方法获得状态码,getheaders()方法获得响应头,geturl()方法获得网址。

例子1:

import socketimport urllib.requestimport urllib.error

socket.setdefaulttimeout(5)

try:
    res = urllib.request.urlopen('https://cn.bing.com/?mkt=zh-CN',timeout=5)
    # res = urllib.request.urlopen('https://www.google.com.hk/')
   
print(res.getcode())  # 响应状态码
   
print(res.getheaders())  # 响应头
   
print(res.geturl())  # 网址except socket.timeout:
    print('请求超时')

结果:

HTTP响应码、响应头、网址、重定向_响应头

例子2:

HTTP的302状态码是临时重定向状态码表明请求的资源被暂时的移动到了由该 HTTP 响应的响应头 Location 指定的 URL 上。浏览器会重定向到这个 URL,但是搜索引擎不会对该资源的链接进行更新 ;而301是永久重定向状态码搜索引擎会更新该资源的链接。

HTTP1.1之后出现了303、307、308都是重定向状态码,其中303允许在重定向时改变请求方法但是禁止被缓存,307和308不允许重定向时改变请求方法。

如何判断是否出现重定向了?

可以通过检查response的url和request的url是否一致即可。

import socketimport urllib.requestimport urllib.error


try:
    # res = urllib.request.urlopen('https://cn.bing.com/?mkt=zh-CN',timeout=5)
   
res = urllib.request.urlopen('https://www.ali213.net/',timeout=5)
    print(res.getcode())  # 响应状态码
   
isRedirected = res.geturl() == 'https://www.ali213.net/'
    print(isRedirected)except socket.timeout:
    print('请求超时')

结果:

HTTP响应码、响应头、网址、重定向_重定向_02

标签:HTTP,重定向,res,urllib,响应,https,print
From: https://blog.51cto.com/u_16427934/12321111

相关文章