16 $ ˆl–äY>” je¶…8 Cq§nµ1hßÀ „e¶Ù¿ÄÃ?÷ a ´iåÜã@sNdZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z gd¢Z dZdZdZdZd Zd Zeƒ ejj¡d d „ejj ¡DƒZd ZdZdZe d¡jZe d¡j Z!e d¡Z"e d¡Z#hd£Z$d@dd„Z%Gdd„dej&j'ƒZ(dd„Z)e(fdd„Z*Gdd„dej+ƒZ,Gd d!„d!ƒZ-z ddl.Z.Wne/�yHYn0Gd"d#„d#e-ƒZ0e  1d#¡Gd$d%„d%e2ƒZ3Gd&d'„d'e3ƒZ4Gd(d)„d)e3ƒZ5Gd*d+„d+e3ƒZ6Gd,d-„d-e3ƒZ7Gd.d/„d/e3ƒZ8Gd0d1„d1e3ƒZ9Gd2d3„d3e3ƒZ:Gd4d5„d5e:ƒZ;Gd6d7„d7e:ƒZGdd?„d?e@e>ƒZAe3ZBdS)Aa¢ HTTP/1.1 client library HTTPConnection goes through a number of "states", which define when a client may legally make another request or fetch the response for a particular request. This diagram details these state transitions: (null) | | HTTPConnection() v Idle | | putrequest() v Request-started | | ( putheader() )* endheaders() v Request-sent |\_____________________________ | | getresponse() raises | response = getresponse() | ConnectionError v v Unread-response Idle [Response-headers-read] |\____________________ | | | response.read() | putrequest() v v Idle Req-started-unread-response ______/| / | response.read() | | ( putheader() )* endheaders() v v Request-started Req-sent-unread-response | | response.read() v Request-sent This diagram presents the following rules: -- a second request may not be started until {response-headers-read} -- a response [object] cannot be retrieved until {request-sent} -- there is no differentiation between an unread response body and a partially read response body Note: this enforcement is applied by the HTTPConnection class. The HTTPResponse class does not enforce this state machine, which implies sophisticated clients may accelerate the request/response pipeline. Caution should be taken, though: accelerating the states beyond the above pattern may imply knowledge of the server's connection-close behavior for certain requests. For example, it is impossible to tell whether the server will close the connection UNTIL the response headers have been read; this means that further requests cannot be placed into the pipeline until it is known that the server will NOT be closing the connection. Logical State __state __response ------------- ------- ---------- Idle _CS_IDLE None Request-started _CS_REQ_STARTED None Request-sent _CS_REQ_SENT None Unread-response _CS_IDLE Req-started-unread-response _CS_REQ_STARTED Req-sent-unread-response _CS_REQ_SENT éN)Úurlsplit)Ú HTTPResponseÚHTTPConnectionÚ HTTPExceptionÚ NotConnectedÚUnknownProtocolÚUnknownTransferEncodingÚUnimplementedFileModeÚIncompleteReadÚ InvalidURLÚImproperConnectionStateÚCannotSendRequestÚCannotSendHeaderÚResponseNotReadyÚ BadStatusLineÚ LineTooLongÚRemoteDisconnectedÚerrorÚ responseséPi»ZUNKNOWNZIdlezRequest-startedz Request-sentcCsi|] }||j“qS©)Úphrase)Ú.0Úvrrú#/usr/lib64/python3.9/http/client.pyÚ kóriiéds[^:\s][^:\r\n]*s\n(?![ \t])|\r(?![ \t\n])z[- ]z[-]>ZPATCHZPOSTÚPUTÚdatac Csjz | d¡WSt