cod*_*000 6 https http urllib urllib2 python-2.7
使用python标准库,是否可以确定给定网址应使用HTTP还是HTTPS?如果您使用HTTP://.com访问网站,是否存在标准错误代码,说“嘿,假人”应该是“ HTTPS”而不是http?
谢谢
您进行了任何测试吗?
您的问题的简短,简短的答案是: 不存在应该使用...这是您的偏好,或者是由于重定向而导致的服务器决策。
某些服务器只允许使用https,而当您调用http时,确实会返回302代码。
因此,如果您的目标是从给定的URL加载https,请尝试回退到正常的http。
我建议您仅发送HEAD请求,因此,无论是否正在侦听https连接,您都可以快速识别。我不建议您检查端口443(ssl),因为有时人们不遵循该规则,并且https协议将确保您位于https之下,而不位于伪造的443端口之下。
一点代码:
#!/usr/bin/env python
#! -*- coding: utf-8 -*-
from urlparse import urlparse
import httplib, sys
def check_url(url):
url = urlparse(url)
conn = httplib.HTTPConnection(url.netloc)
conn.request("HEAD", url.path)
if conn.getresponse():
return True
else:
return False
if __name__ == "__main__":
url = "http://httpbin.org"
url_https = "https://" + url.split("//")[1]
if check_url(url_https):
print "Nice, you can load it with https"
else:
if check_url(url):
print "https didn't load, but you can use http"
if check_url(url):
print "Nice, it does load with http too"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3847 次 |
| 最近记录: |