이 글은 주로 Python3 관련 정보를 소개합니다. http.client 모듈에 대해 자세히 소개되어 있으니 필요하신 분들은 아래에서 참고하시면 됩니다.
http 모듈 소개
Python3의 http 패키지에는 HTTP 프로토콜 개발을 위한 여러 모듈이 포함되어 있습니다.
http.client는 상위 수준에서 사용되는 하위 수준 HTTP 프로토콜 클라이언트입니다. urllib.request 모듈에서 사용됩니다.
-
http.server 소켓 서버를 기반으로 하는 기본 HTTP 서버용 클래스가 포함되어 있습니다. 쿠키는 쿠키를 구현합니다
상태 관리 -
http 모듈은 또한 일련의 HTTP를 정의합니다.
상태 코드 . Python 3.5 클라이언트 모듈
HTTPStatus 클래스가 추가되었습니다. 모듈은 http 및 https 프로토콜 클라이언트를 구현하는 클래스를 정의합니다. 이 모듈은 일반적으로 직접 사용되지 않지만 .request 모듈은 이를 사용하여 URL을 처리합니다. 1. http.client.HTTP_PORT
http 프로토콜의 기본 포트 번호는 항상 80입니다2. http.client.HTTPS_PORT https 프로토콜의 기본 포트 번호는 항상 포트 443입니다.
3. http.client.responses
는 HTTP 1.1 상태 코드를
W3C 이름 사전에 매핑합니다. 예: >>> from http import HTTPStatus
>>> HTTPStatus.OK<httpstatus.ok:>
>>> HTTPStatus.OK == 200True
>>> http.HTTPStatus.OK.value200
>>> HTTPStatus.OK.phrase'OK'
>>> HTTPStatus.OK.description'Request fulfilled, document follows'
>>> list(HTTPStatus)[<httpstatus.continue:>, <httpstatus.switching_protocols:>, ...]</httpstatus.switching_protocols:></httpstatus.continue:></httpstatus.ok:>
기본 클래스
HTTPConnection 클래스
http.client.responses[http.client.NOT_FOUND] is 'Not Found'HTTPConnection 인스턴스 HTTP 서버와의 트랜잭션을 나타냅니다. HTTPConnection을 인스턴스화할 때 호스트 및 선택적 포트 번호를 전달해야 합니다. 포트가 전달되지 않고 호스트
문자열
이 호스트:포트 형식인 경우 포트 값이 추출되고, 그렇지 않으면 기본 8포트가 사용됩니다. 선택적 매개변수인 timeout이 제공되면 차단 작업은 지정된 시간 이후에 타임아웃됩니다. 제공되지 않으면 기본 전역 시간 초과 설정이 사용됩니다. 선택적 매개변수 source_address는 HTTP 연결의 소스 주소로 사용되는 호스트와 포트(host,port)의 튜플 형식이어야 합니다.http.client.HTTPConnection(host, port=None, [timeout, ]source_address=None)3.2 버전에서 source_address가 추가되었습니다. 버전 3.4에서는 엄격한 매개변수가 제거되었습니다.
HTTPSConnection 클래스
>>> h1 = http.client.HTTPConnection('www.python.org') >>> h2 = http.client.HTTPConnection('www.python.org:80')>>> h3 = http.client.HTTPConnection('www.python.org', 80) >>> h4 = http.client.HTTPConnection('www.python.org', 80, timeout=10)HTTPSConnection은 SSL을 사용하여 보안 서버에 연결하는 HTTPConnection의 하위 클래스입니다.
기본 포트는 443입니다. context가 지정된 경우 다양한 SSL 옵션을 설명하는 ssl.SSLContext 클래스의 인스턴스여야 합니다.
key_file 및 cert_file은 더 이상 사용되지 않으며 ssl.SSLContext.load_cert_chain() 으로 대체되었습니다. 또는 ssl.create_default_context()를 사용하여 시스템이 신뢰하는 CA 인증서를 선택하세요. check_hostname 매개변수도 더 이상 사용되지 않습니다. 컨텍스트의 ssl.SSLContext.check_hostname속성을 사용하세요.
HTTPResponse 클래스
HTTPSConnection(host, port=None, key_file=None, cert_file=None, [timeout, ]source_address=None, *, context=None, check_hostname=None)이 인스턴스는 연결이 성공하면 반환됩니다. 이 클래스의 개체는 사용자가 직접 인스턴스화할 수 없습니다.
HTTPMessage 클래스
HTTPMessage 인스턴스는 HTTP 응답에서 반환된 헤더를 보유합니다.예외 클래스
HTTP예외
클래스Exception 클래스의 하위 클래스이자 http 모듈에 있는 다른 예외 클래스의 기본 클래스입니다.
기타 예외 클래스:
NotConnected
InvalidURL
UnknownProtocol
UnknownTransferEncoding
UnimplementedFileMode
IncompletedRead
ImproperConnectionState
BadStatusLine
LineTooLong
CannotSendRequest
CannotSendHeader
ResponseNotReady
RemoteDisconnected
수업 방법
HTTPConnection 객체 메서드
HTTPConnection 인스턴스에는 다음 메서드가 있습니다.
1. HTTPConnection.request(method, url, body=None, headers={})
지정된 방법과 URL 링크를 사용하여 서버에 요청을 보냅니다.
본문 부분을 지정하는 경우 헤더 부분을 보낸 후 본문 부분을 보냅니다. 본문 부분은 문자열, 바이트열 객체, 파일 객체 또는 바이트열 객체의 반복자가 될 수 있습니다. 다양한 신체 유형은 다양한 요구 사항에 해당합니다.
헤더 매개변수는 사전 유형인 HTTP 헤더의 매핑이어야 합니다.
헤더에 Content-Length 항목이 포함되어 있지 않으면 본문을 기준으로 자동으로 추가됩니다.
2. HTTPConnection.getresponse()
는 서버에서 반환된 콘텐츠를 가져오기 위해 요청이 전송된 후에 호출되어야 합니다.
3. HTTPConnection.set_debuglevel(level)
debug 수준을 설정합니다. 기본 디버그 수준은 0입니다. 이는 디버그 출력이 없음을 의미합니다.
4. HTTPConnection.set_tunnel(host, port=None, headers=None)
프록시 서버를 사용하여 연결을 허용하는 HTTP 터널 링크의 호스트와 포트를 설정합니다.
5. HTTPConnection.connect()
지정된 서버에 연결합니다. 기본적으로 이 메서드는 클라이언트가 연결되지 않은 경우 요청 시 자동으로 호출됩니다.
6. HTTPConnection.close()
링크를 닫습니다.
7. HTTPConnection.putrequest(request, selector,skip_host=False,skip_accept_encoding=False)
서버와 연결에 성공하면 이 메소드를 먼저 호출해야 합니다.
서버로 전송되는 콘텐츠에는 요청 문자열, 선택기 문자열 및 HTTP 프로토콜 버전이 포함됩니다.
8. HTTPConnection.putheader(header, 인수[, …])
HTTP 헤더를 서버로 보냅니다.
서버로 전송되는 내용에는 헤더 헤더, 콜론, 공백 및 매개변수 목록의 첫 번째 항목이 포함됩니다.
9. HTTPConnection.endheaders(message_body=None)
헤더의 끝을 식별하기 위해 서버에 빈 줄을 보냅니다.
10. HTTPConnection.send(data)
서버에 데이터를 보냅니다.
은 endheaders() 메서드 뒤, getresponse() 메서드 앞에 호출되어야 합니다.
HTTPResponse 객체 메서드
HTTPResponse 인스턴스에는 서버에서 반환된 HTTP 응답이 포함되어 있습니다.
요청 헤더와 본문 부분에 액세스하는 방법을 제공합니다.
HTTPResponse는 반복 가능한 객체이며 with 문을 사용하여 선언할 수 있습니다.
HTTPResponse 인스턴스에는 다음과 같은 메서드가 있습니다.
1. HTTPResponse.read([amt])
응답의 본문 부분을 읽고 반환합니다.
2. HTTPResponse.readinto(b)
지정된 바이트 길이 len(b)를 읽고 버퍼 바이트 b로 반환합니다.
함수 읽은 바이트 수를 반환합니다
3. HTTPResponse.getheader(name,default=None)
返回指定名称 name 的 HTTP 头部值,如果没有相应匹配的 name 值,则返回默认的 None。如果有多个相匹配的,则返回所有的值,以逗号分隔。
4、HTTPResponse.getheaders()
以元组的形式返回所有的头部信息 (header,value)。
5、HTTPResponse.fileno()
6、HTTPResponse.msg
7、HTTPResponse.version。
HTTP 协议版本
8、HTTPResponse.status
HTTP 状态码
9、HTTPResponse.reason
10、HTTPResponse.debuglevel
11、HTTPResponse.closed
如果为 True ,说明连接已关闭。
示例
import http.client import urllib,parser # # 初始化一个 https 链接 conn = http.client.HTTPSConnection("www.python.org") # 指定 request 请求的方法和请求的链接地址 conn.request("GET","/doc/") # 得到返回的 http response r1 = conn.getresponse() # HTTP 状态码 print(r1.status,r1.reason) # HTTP 头部 print(r1.getheaders()) # body 部分 print(r1.read()) # 如果连接没有关闭,打印输出前 200 个字节 if not r1.closed: print(r1.read(200)) # 关闭连接后才能重新请求 conn.close() # 请求一个不存在的文件或地址 conn.request("GET","/parrot.spam") r2 = conn.getresponse() print(r2.status,r2.reason) conn.close() # 使用 HEAD 请求,但是不会返回任何数据 conn = http.client.HTTPSConnection("www.python.org") conn.request("HEAD","/") res = conn.getresponse() print(res.status,res.reason) data = res.read() print(len(data)) conn.close() # 使用 POST 请求,提交的数据放在 body 部分 params = urllib.parse.urlencode({'@number':12524,'@type':'issue','@action':'show'}) # post 请求数据,要带上 Content-type 字段,以告知消息主体以何种方式编码 headers = {"Content-type":"application/x-www-form-urlencoded","Accept":"text/plain"} conn = http.client.HTTPConnection("bugs.python.org") conn.request("POST","/",params,headers) response = conn.getresponse() # 访问被重定向 print(response.status,response.reason) print(response.read().decode("utf-8")) conn.close()
위 내용은 Python3의 http.client 모듈에 대한 심층적인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

이 기사에서는 HTML을 구문 분석하기 위해 파이썬 라이브러리 인 아름다운 수프를 사용하는 방법을 설명합니다. 데이터 추출, 다양한 HTML 구조 및 오류 처리 및 대안 (SEL과 같은 Find (), find_all (), select () 및 get_text ()와 같은 일반적인 방법을 자세히 설명합니다.

이 기사는 딥 러닝을 위해 텐서 플로와 Pytorch를 비교합니다. 데이터 준비, 모델 구축, 교육, 평가 및 배포와 관련된 단계에 대해 자세히 설명합니다. 프레임 워크, 특히 계산 포도와 관련하여 주요 차이점

이 기사는 Python 개발자가 CLIS (Command-Line Interfaces) 구축을 안내합니다. Typer, Click 및 Argparse와 같은 라이브러리를 사용하여 입력/출력 처리를 강조하고 CLI 유용성을 향상시키기 위해 사용자 친화적 인 디자인 패턴을 홍보하는 세부 정보.

Python의 Pandas 라이브러리를 사용할 때는 구조가 다른 두 데이터 프레임 사이에서 전체 열을 복사하는 방법이 일반적인 문제입니다. 두 개의 dats가 있다고 가정 해

이 기사는 Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask 및 요청과 같은 인기있는 Python 라이브러리에 대해 설명하고 과학 컴퓨팅, 데이터 분석, 시각화, 기계 학습, 웹 개발 및 H에서의 사용에 대해 자세히 설명합니다.

이 기사는 프로젝트 종속성 관리 및 충돌을 피하는 데 중점을 둔 Python에서 가상 환경의 역할에 대해 설명합니다. 프로젝트 관리 개선 및 종속성 문제를 줄이는 데있어 생성, 활성화 및 이점을 자세히 설명합니다.

정규 표현식은 프로그래밍의 패턴 일치 및 텍스트 조작을위한 강력한 도구이며 다양한 응용 프로그램에서 텍스트 처리의 효율성을 높입니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

뜨거운 주제



