python 读取 http请求状态码 json 文件

一、完整键值对

以下状态码保存到文件 http_response_status_code_full.json


点击展开代码
[
  {
    "_comment1": "Http 返回信息的状态码,json 格式,用于服务封装",
    "_comment2": "https://www.cnblogs.com/wutou/p/17738708.html"
  },{
    "code":100,
    "message":"继续,请求者应当继续提出请求。服务器已收到请求的一部分,正在等待其余部分"
  },{
    "code": 101,
    "message": "切换协议,服务器已成功处理了请求"
  },{
    "code": 102,
    "message": "处理,继续执行"
  },{
    "code": 103,
    "message": "预加载,浏览器开始预加载CSS和JavaScript等文件"
  },{
    "code": 122,
    "message": "URL太长,请求url太长"
  },{
    "code": 200,
    "message": "请求成功,服务器已成功处理了请求"
  },{
    "code": 201,
    "message": "已创建,请求成功并且服务器创建了新的资源"
  },{
    "code": 202,
    "message": "已接受,服务器已接受请求,但尚未处理"
  },{
    "code": 203,
    "message": "非授权信息,服务器已成功处理了请求,但返回的信息可能来自另一个源"
  },{
    "code": 204,
    "message": "无内容,服务器成功处理了请求,但没有返回任何内容"
  },{
    "code": 205,
    "message": "重置内容,服务器成功处理了请求,内容被重置"
  },{
    "code": 206,
    "message": "部分内容,服务器成功处理了部分请求"
  },{
    "code": 300,
    "message": "多种选择,针对请求,服务器可执行多种操作"
  },{
    "code": 301,
    "message": "永久移动,请求的网页已永久移动到新位置,即永久重定向"
  },{
    "code": 302,
    "message": "临时移动,请求的网页暂时跳转到其他页面,即暂时重定向"
  },{
    "code": 303,
    "message": "查看其它地址,如果原来的请求是POST,重定向目标文档应该通过GET提取"
  },{
    "code": 304,
    "message": "未修改,此次请求返回的网页未修改,继续使用上次的资源"
  },{
    "code": 305,
    "message": "使用代理,请求者应该使用代理访问该网页"
  },{
    "code": 307,
    "message": "临时重定向,请求的资源临时从其他位置响应"
  },{
    "code": 400,
    "message": "错误请求,客户端请求的语法错误,服务器无法理解,服务器无法解析该请求"
  },{
    "code": 401,
    "message": "未授权,请求要求用户的身份认证,身份验证或验证未通过"
  },{
    "code": 403,
    "message": "禁止访问,服务器拒绝此请求"
  },{
    "code": 404,
    "message": "无此接口,服务器找不到请求的网页"
  },{
    "code": 405,
    "message": "客户端请求中的方法被禁止,服务器禁用了请求中指定的方法"
  },{
    "code": 406,
    "message": "不接受,服务器无法根据客户端请求的内容特性完成请求,无法使用请求的内容响应请求的网页"
  },{
    "code": 407,
    "message": "需要代理授权,请求要求代理的身份授权认证,"
  },{
    "code": 408,
    "message": "请求超时,服务器请求超时"
  },{
    "code": 409,
    "message": "冲突,服务器处理请求时发生了冲突,"
  },{
    "code": 410,
    "message": "已删除,客户端请求的资源已经不存在,"
  },{
    "code": 411,
    "message": "需要有效长度,服务器不接受不含有效内容长度标头字段的请求,服务器无法处理客户端发送的不带Content-Length的请求信息,"
  },{
    "code": 412,
    "message": "未满足前提条件,客户端请求信息的先决条件错误,"
  },{
    "code": 413,
    "message": "请求的实体过大,服务器无法处理,因此拒绝请求,"
  },{
    "code": 414,
    "message": "请求的URI过长,服务器无法处理,"
  },{
    "code": 415,
    "message": "不支持类型,服务器无法处理请求附带的媒体格式,"
  },{
    "code": 416,
    "message": "请求范围不符,客户端请求的范围无效,页面无法提供请求的范围"
  },{
    "code": 417,
    "message": "未满足期望值,服务器无法满足Expect的请求头信息,服务器未满足期望请求标头字段的要求"
  },{
    "code": 500,
    "message": "服务器内部错误,服务器遇到错误,无法完成请求"
  },{
    "code": 501,
    "message": "服务未实现,服务器不具备完成请求的功能"
  },{
    "code": 502,
    "message": "网关错误,服务器作为网关或代理,从上游服务器收到无效响应"
  },{
    "code": 503,
    "message": "服务不可用,服务器目前无法使用"
  },{
    "code": 504,
    "message": "网关超时,服务器作为网关或代理,但是没有及时从上游服务器收到请求"
  },{
    "code": 505,
    "message": "HTTP版本不受支持,服务器不支持请求中所用的HTTP协议版"
  },{
    "code": 506,
    "message": "服务器有一个内部配置错误:对请求的透明内容协商导致循环引用。"
  },{
    "code": 507,
    "message": "服务器有内部配置错误:所选的变体资源被配置为参与透明内容协商本身,因此不是协商过程中的适当端点。"
  },{
    "code": 508,
    "message": "服务器在处理请求时检测到无限循环。"
  },{
    "code": 509,
    "message": "带宽限制(Bandwidth Limit Exceeded),服务器带宽有限"
  },{
    "code": 510,
    "message": "客户端需要对请求进一步扩展,服务器才能实现它。服务器会回复客户端发出扩展请求所需的所有信息"
  },{
    "code": 511,
    "message": "客户端需要进行身份验证才能获得网络访问权限。该状态码不是由源头服务器生成的,而是由控制网络访问的拦截代理服务器生成的。"
  }
]


使用示例一:

指定第1个的键值

with open("http_response_status_code.json", mode="r", encoding='utf-8') as j_object:
    data = json.load(j_object)
    # print(data)
    print(data[1]["code"])
    print(data[1]["message"])

效果:

image


使用示例二:

遍历判断

with open("http_response_status_code_full.json", mode="r", encoding='utf-8') as j_object:
    data = json.load(j_object)
    for i in range(1,len(data)):
        if data[i]["code"] == 302:
            print(data[i]["code"], data[i]["message"])

效果:

image


使用示例三:

遍历判断

## 类型列表包含字典
json_file="http_response_status_code_full.json"
with open(json_file, mode="r", encoding='utf-8') as j_object:
    data_list = json.load(j_object)
    ## 遍历data_list列表内容(得到字典j_dict)
    for j_dict in data_list:
        if 'code' in j_dict:
            ## 保存包含 code 的字典(过滤_comment*这些注释字典)
            d_dist=j_dict
            if 302 in d_dist.values():
                ## 取状态值 302
                print(d_dist['code'])
                ## 取状态值为 302 的描述信息
                print(d_dist['message'])

效果:

image





二、精简键值对(直接把状态码传入,就可以获取到解释内容,比上面遍历方便)

以下状态码保存到文件 http_response_status_code simplify.json


点击展开代码
{
  "_comment2": "https://www.cnblogs.com/wutou/p/17738708.html"
  "100": "继续,请求者应当继续提出请求。服务器已收到请求的一部分,正在等待其余部分",
  "101": "切换协议,服务器已成功处理了请求",
  "102": "处理,继续执行",
  "103": "预加载,浏览器开始预加载CSS和JavaScript等文件",
  "122": "URL太长,请求url太长",
  "200": "请求成功,服务器已成功处理了请求",
  "201": "已创建,请求成功并且服务器创建了新的资源",
  "202": "已接受,服务器已接受请求,但尚未处理",
  "203": "非授权信息,服务器已成功处理了请求,但返回的信息可能来自另一个源",
  "204": "无内容,服务器成功处理了请求,但没有返回任何内容",
  "205": "重置内容,服务器成功处理了请求,内容被重置",
  "206": "部分内容,服务器成功处理了部分请求",
  "300": "多种选择,针对请求,服务器可执行多种操作",
  "301": "永久移动,请求的网页已永久移动到新位置,即永久重定向",
  "302": "临时移动,请求的网页暂时跳转到其他页面,即暂时重定向",
  "303": "查看其它地址,如果原来的请求是POST,重定向目标文档应该通过GET提取",
  "304": "未修改,此次请求返回的网页未修改,继续使用上次的资源",
  "305": "使用代理,请求者应该使用代理访问该网页",
  "307": "临时重定向,请求的资源临时从其他位置响应",
  "400": "错误请求,客户端请求的语法错误,服务器无法理解,服务器无法解析该请求",
  "401": "未授权,请求要求用户的身份认证,身份验证或验证未通过",
  "403": "禁止访问,服务器拒绝此请求",
  "404": "无此接口,服务器找不到请求的网页",
  "405": "客户端请求中的方法被禁止,服务器禁用了请求中指定的方法",
  "406": "不接受,服务器无法根据客户端请求的内容特性完成请求,无法使用请求的内容响应请求的网页",
  "407": "需要代理授权,请求要求代理的身份授权认证,",
  "408": "请求超时,服务器请求超时",
  "409": "冲突,服务器处理请求时发生了冲突,",
  "410": "已删除,客户端请求的资源已经不存在,",
  "411": "需要有效长度,服务器不接受不含有效内容长度标头字段的请求,服务器无法处理客户端发送的不带Content-Length的请求信息,",
  "412": "未满足前提条件,客户端请求信息的先决条件错误,",
  "413": "请求的实体过大,服务器无法处理,因此拒绝请求,",
  "414": "请求的URI过长,服务器无法处理,",
  "415": "不支持类型,服务器无法处理请求附带的媒体格式,",
  "416": "请求范围不符,客户端请求的范围无效,页面无法提供请求的范围",
  "417": "未满足期望值,服务器无法满足Expect的请求头信息,服务器未满足期望请求标头字段的要求",
  "500": "服务器内部错误,服务器遇到错误,无法完成请求",
  "501": "服务未实现,服务器不具备完成请求的功能",
  "502": "网关错误,服务器作为网关或代理,从上游服务器收到无效响应",
  "503": "服务不可用,服务器目前无法使用",
  "504": "网关超时,服务器作为网关或代理,但是没有及时从上游服务器收到请求",
  "505": "HTTP版本不受支持,服务器不支持请求中所用的HTTP协议版",
  "506": "服务器有一个内部配置错误:对请求的透明内容协商导致循环引用。",
  "507": "服务器有内部配置错误:所选的变体资源被配置为参与透明内容协商本身,因此不是协商过程中的适当端点。",
  "508": "服务器在处理请求时检测到无限循环。",
  "509": "带宽限制(Bandwidth Limit Exceeded),服务器带宽有限",
  "510": "客户端需要对请求进一步扩展,服务器才能实现它。服务器会回复客户端发出扩展请求所需的所有信息",
  "511": "客户端需要进行身份验证才能获得网络访问权限。该状态码不是由源头服务器生成的,而是由控制网络访问的拦截代理服务器生成的。"
}

使用示例一:

with open("http_response_status_code simplify.json", mode="r", encoding='utf-8') as j_object:
     data = json.load(j_object)
     # print(data)
     print(data["100"])
     print(data["102"])

使用示例二:

s = json.load(open('http_response_status_code simplify.json','r',encoding='utf-8'))
# print(s,type(s))
print(s["100"])
print(s["102"])

三、状态码英文版

来源:https://blog.csdn.net/zhu6201976

点击查看代码
# 信息性状态码
100: ('continue',),
101: ('switching_protocols',),
102: ('processing',),
103: ('checkpoint',),
122: ('uri_too_long', 'request_uri_too_long'),
 
# 成功状态码
200: ('ok', 'okay', 'all_ok', 'all_okay', 'all_good', '\\o/', '✓'),
201: ('created',),
202: ('accepted',),
203: ('non_authoritative_info', 'non_authoritative_information'),
204: ('no_content',),
205: ('reset_content', 'reset'),
206: ('partial_content', 'partial'),
207: ('multi_status', 'multiple_status', 'multi_stati', 'multiple_stati'),
208: ('already_reported',),
226: ('im_used',),
 
# 重定向状态码
300: ('multiple_choices',),
301: ('moved_permanently', 'moved', '\\o-'),
302: ('found',),
303: ('see_other', 'other'),
304: ('not_modified',),
305: ('use_proxy',),
306: ('switch_proxy',),
307: ('temporary_redirect', 'temporary_moved', 'temporary'),
308: ('permanent_redirect',
      'resume_incomplete', 'resume',), # These 2 to be removed in 3.0
 
# 客户端错误状态码
400: ('bad_request', 'bad'),
401: ('unauthorized',),
402: ('payment_required', 'payment'),
403: ('forbidden',),
404: ('not_found', '-o-'),
405: ('method_not_allowed', 'not_allowed'),
406: ('not_acceptable',),
407: ('proxy_authentication_required', 'proxy_auth', 'proxy_authentication'),
408: ('request_timeout', 'timeout'),
409: ('conflict',),
410: ('gone',),
411: ('length_required',),
412: ('precondition_failed', 'precondition'),
413: ('request_entity_too_large',),
414: ('request_uri_too_large',),
415: ('unsupported_media_type', 'unsupported_media', 'media_type'),
416: ('requested_range_not_satisfiable', 'requested_range', 'range_not_satisfiable'),
417: ('expectation_failed',),
418: ('im_a_teapot', 'teapot', 'i_am_a_teapot'),
421: ('misdirected_request',),
422: ('unprocessable_entity', 'unprocessable'),
423: ('locked',),
424: ('failed_dependency', 'dependency'),
425: ('unordered_collection', 'unordered'),
426: ('upgrade_required', 'upgrade'),
428: ('precondition_required', 'precondition'),
429: ('too_many_requests', 'too_many'),
431: ('header_fields_too_large', 'fields_too_large'),
444: ('no_response', 'none'),
449: ('retry_with', 'retry'),
450: ('blocked_by_windows_parental_controls', 'parental_controls'),
451: ('unavailable_for_legal_reasons', 'legal_reasons'),
499: ('client_closed_request',),
 
# 服务端错误状态码
500: ('internal_server_error', 'server_error', '/o\\', '✗'),
501: ('not_implemented',),
502: ('bad_gateway',),
503: ('service_unavailable', 'unavailable'),
504: ('gateway_timeout',),
505: ('http_version_not_supported', 'http_version'),
506: ('variant_also_negotiates',),
507: ('insufficient_storage',),
509: ('bandwidth_limit_exceeded', 'bandwidth'),
510: ('not_extended',),
511: ('network_authentication_required', 'network_auth', 'network_authentication')
 

四、http 状态码总结:

image


状态码 说明 例如
1xx 请求收到 100
2xx 请求成功 200
3xx 重新定向 305
4xx 客户端错误 404
5xx 服务器错误 503

免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。




参考、来源:
https://blog.csdn.net/qq_42618566/article/details/132541251
https://blog.csdn.net/qq_38410428/article/details/82726722
https://www.freecodecamp.org/chinese/news/json-comment
https://blog.csdn.net/m0_67402235/article/details/125399368
https://www.zhihu.com/question/386684100/answer/3059074477



posted @ 2023-10-01 11:48  悟透  阅读(275)  评论(0)    收藏  举报