14 源码初探及其工作机制分析

概述

http.client模块定义和实现了一系列类用于实现客户端HTTP和HTTPS协议。

一句话说明: HTTP/1.1 client library

注:

支持HTTP/1.1版本的协议

HTTPS的支持需要安装SSL才行

http.client工作流程

下面我们看一下http.client工作流程机制,以便加深在原理的理解。

说明:

HTTPConnection通过不同的“状态”定义了HTTP客户的行为状态,管理维护着每一个的request和response

上述的流程图,详细的说明了各“状态”之间的转换,把上图理解,即把http.client理解透彻了。

http.client的类

下面我们看一下在http.client模块中,定义了哪些类

HTTPConnection

一个HTTPConnection实例代表一个与HTTP服务器的事务。

HTTPSConnection HTTPConnection的子类,它使用SSL与安全的服务器进行通信。

HTTPResponse HTTPResponse的实例代表客户端与服务端成功建立链接后的返回。

HTTPException httpc.client模块中的异常基类,其为Exception的子类。

以下均为HTTPException的子类,属于异常类,具体含义这里不一一说明了,大家根据字面意思了解即可

NotConnected

InvalidURL

UnknownProtocol

UnknownTransferEncoding

UnimplementedFileMode

IncompleteRead

ImproperConnectionState

CannotSendRequest

CannotSendHeader

ResponseNotReady

BadStatusLine

LineTooLong

RemoteDisconnected

定义的几个常量:

注:更多的状态码请参加https://docs.python.org/3/library/http.html#http-status-codes

小结

主要让大家了解下http.client工作流程及该模块下有哪些类和常量。

本文来自企鹅号 - 开源优测媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

Oracle Advanced Support系统SQL注入漏洞挖掘经验分享

Oracle Advanced Support系统SQL注入漏洞分析 一年多前我在客户的一个外部环境中执行渗透测试,任何外部环境渗透测试的重要步骤之一就是挖掘出...

2727
来自专栏牛肉圆粉不加葱

Spark Task 的执行流程④ - task 结果的处理

Spark Task 的执行流程③ - 执行 task一文中介绍了 task 是如何执行并返回 task 执行结果的,本文将进一步介绍 task 的结果是怎么处...

882
来自专栏Golang语言社区

package http

要管理代理、TLS配置、keep-alive、压缩和其他设置,创建一个Transport:

1164
来自专栏大内老A

WCF技术剖析之五:利用ASP.NET兼容模式创建支持会话(Session)的WCF服务

在《基于IIS的WCF服务寄宿(Hosting)实现揭秘》中,我们谈到在采用基于IIS(或者说基于ASP.NET)的WCF服务寄宿中,具有两种截然不同的运行模式...

1889
来自专栏逍遥剑客的游戏开发

MPQ 文件系统完成

1674
来自专栏SDNLAB

Neutron集成ONOS源码分析

OpenStack Neutron集成ONOS的项目,名为“networking-onos”。目前,在Neutron项目中现已开始从源码中移除诸如SDN Plu...

3306
来自专栏前端之路

–封装localStorage数据存取方法

791
来自专栏用户2442861的专栏

Python标准模块logging

http://blog.csdn.net/fxjtoday/article/details/6307285

381
来自专栏java架构师

解决ASP.NET中的各种乱码问题

经常发现有人被乱码困扰着,而我感觉比较幸运,很少为此烦恼过。 在这篇博客中,我将把我想到的一些与乱码有关的经验总结出来,供大家参考。 页面显示乱码问题 在一...

2906
来自专栏技术之路

Qt5 新特性

Qt 5 已经临近发布,其最大的特点就是模块化。将原来庞大的模块更细分为不同的部分,同时,一个大版本的升级,当然少不了添加、删除各个功能类。文本简单介绍 Qt5...

1988

扫码关注云+社区