네트워크의 모든 컨텐츠는 요청을 통해 액세스 할 수 있습니다. Python 응용 프로그램에 웹 정보가 필요한 경우 웹 요청을해야합니다. 이 기사는 Python 요청으로 뛰어들 것입니다. 우리는 웹 요청의 구조와 Python 요청을 만드는 방법에 대해 배울 것입니다. 궁극적으로 Python Requests 라이브러리를 사용할 수있어 전체 프로세스가 훨씬 쉬워집니다.
키 포인트
http (HyperText Transfer Protocol)는 웹에서 데이터를 교환하는 데 사용되는 클라이언트 서버 프로토콜입니다. 신뢰할 수있는 전송을위한 전송 프로토콜로 TCP를 사용합니다. HTTP 요청은 클라이언트가 시작하고 서버에서 처리하며 서버는 해당 응답을 반환합니다. HTTP는 상태가없는 상태이므로 두 번의 연속 요청 사이에 연관성이 없습니다.
Python 요청 라이브러리는 Python에서 HTTP 요청을하는 프로세스를 단순화합니다. 요청을 작성하는 복잡성을 추상화하고 사용하기 쉬운 인터페이스를 제공합니다. 이 라이브러리를 사용하면 Python HTTP 요청을 기본에서 복잡성으로 보낼 수 있습니다. PIP를 사용하여 설치할 수 있으며 GET 요청, 프로세스 상태 코드, 응답 본문을 읽고 API와 상호 작용하는 데 사용됩니다.
HTTP 헤더는 HTTP 커뮤니케이션에 추가 정보를 제공합니다. Python Requests 라이브러리에서 사용자 정의하여 발신자 또는 메시지에 대한 추가 정보를 제공 할 수 있습니다. 예를 들어, 사용자 에이전트 헤더는 요청을 작성하는 클라이언트에 대한 정보를 제공하는 반면, 허용 언어 헤더는 클라이언트가 이해할 수있는 언어를 전달합니다.
- http 요청 소개
웹에서 데이터를 교환하려면 먼저 통신 프로토콜이 필요합니다. 웹을 탐색 할 때 사용하는 프로토콜은 하이퍼 텍스트 전송 프로토콜 또는 HTTP입니다. HTTP는 신뢰할 수있는 전송이 필요하기 때문에 TCP를 전송 프로토콜로 사용하며 TCP만이이를 보장 할 수 있습니다. -
전 세계 어딘가에있는 웹 서버의 HTML 페이지와 같은 필요한 리소스가 있다고 가정합니다. 이 리소스에 액세스하거나 웹 브라우저에서 페이지를보고 싶습니다. 우리가해야 할 첫 번째 일은 HTTP 요청을하는 것입니다. HTTP는 클라이언트-서버 프로토콜이므로 클라이언트가 요청을 시작 함을 의미합니다.
요청을 수신 한 후 서버는 요청을 처리하고 해당 응답을 반환합니다. -
서버의 응답 방법은 다를 수 있습니다. 예상치 못한 상황이 발생하면 요청한 리소스를 보내거나 상태 코드에 응답 할 수 있습니다.
각 통신 프로토콜에서 정보는 특정 필드에 위치해야합니다. 클라이언트와 서버 모두 요청이나 응답을 해석하는 방법을 알아야하기 때문입니다. 다음 섹션에서는 HTTP 요청 및 HTTP 응답이 어떻게 구축되는지 알게됩니다. 또한 가장 중요한 분야의 역할에 대해서도 논의 할 것입니다.
http 요청
HTTP의 가장 중요한 설계 기능 중 하나는 인간이 읽을 수 있다는 것입니다. 이것은 우리가 HTTP 요청을 볼 때 바닥에 많은 복잡성으로 모든 것을 쉽게 읽을 수 있음을 의미합니다. HTTP의 또 다른 특징은 상태가 없다는 것입니다. 이것은 두 개의 연속 요청 사이에 연관성이 없다는 것을 의미합니다. HTTP 프로토콜은 이전 요청을 기억하지 않습니다. 이는 각 요청에 서버가 요청을 수행하는 데 필요한 모든 것을 포함해야 함을 의미합니다.
유효한 HTTP 요청에는 다음 요소가 포함되어야합니다.
http 메소드 - 예를 들어, get or post
HTTP 프로토콜의 버전
획득 할 자원의 경로
그런 다음 발신자 또는 메시지에 대한 추가 정보를 지정하는 옵션 헤더를 추가 할 수 있습니다. 일반적인 HTTP 요청 헤더의 예로는 사용자 에이전트 또는 클라이언트의 선호 자연 언어가 포함됩니다. 두 옵션 헤더 모두 요청을하는 클라이언트에 대한 정보를 제공합니다.
이것은 지정된 모든 필드를 명확하게 이해할 수있는 HTTP 메시지 예제입니다.
첫 번째 줄은 요청 유형과 HTTP 프로토콜의 버전을 지정합니다. 그런 다음 요청을하는 클라이언트가 수락하는 호스트와 언어를 지정합니다. 일반적으로 메시지가 훨씬 길지만 외관을 자극 할 수 있습니다. -
http 응답
이제 HTTP 요청이 어떻게 보이는지 이해 했으므로 HTTP 응답을 계속 볼 수 있습니다. -
HTTP 응답에는 일반적으로 다음 요소가 포함됩니다
HTTP 프로토콜의 버전
설명적인 짧은 메시지가있는 상태 코드
http 헤더 목록
요청 리소스 가 포함 된 메시지 본문
이제 필요한 기본 요소를 소개 했으므로 다음 단계를 수행하기 전에 요약 할 가치가 있습니다. 이제 클라이언트가 HTTP 서버와 통신하기를 원할 때마다 HTTP 요청을 작성하고 보내야합니다. 그런 다음 서버가 수신하면 HTTP 응답을 생성하고 보냅니다.
우리는 마침내 Python 요청 라이브러리를 소개 할 준비가되었습니다.
Python 요청 라이브러리
Python 요청 라이브러리를 사용하면 기본 요청에서 복잡한 요청에 이르기까지 Python HTTP 요청을 보낼 수 있습니다. Python은 라이브러리가 복잡한 Python 요청을하는 복잡성을 추상화하고 사용하기 쉬운 인터페이스를 제공합니다. 다음 섹션에서는 간단한 파이썬 요청을 작성하고 응답을 해석하는 방법을 배웁니다. 또한 Python Requests Library에서 제공하는 일부 기능에 대해서도 배울 것입니다. <code>~~~http
GET / HTTP/1.1
Host: www.google.com
Accept-Language: en-GB,en;q=0.5
~~~</code>
로그인 후 복사
로그인 후 복사
Python 요청을 설치하십시오
먼저, 파이썬 요청 라이브러리를 설치해야합니다. pip : 를 사용하여 설치합시다
파이썬 요청 라이브러리를 올바르게 설치 한 후에는 사용을 시작할 수 있습니다.
Python 요청 를 사용하여 첫 번째 GET 요청을 보내십시오
먼저, 파이썬 파일을 만들어야합니다. 이 예에서는 web.py를 지명합니다. 이 소스 파일에서 다음 코드를 삽입하십시오
이 프로그램은 Google에 GET 요청을 발행합니다. 이 프로그램을 실행하면 다음과 같은 출력을 얻을 수 있습니다.
그래서 이것이 무엇을 의미합니까? 우리는 전에 상태 코드를 논의했습니다. 이 출력은 우리의 요청이 성공적으로 수신, 이해 및 처리되었음을 알려줍니다. 다른 코드가 있습니다. 가장 일반적인 코드 중 일부를 나열 할 수 있습니다.
301은 영구적으로 움직였습니다. 이것은 리디렉션 메시지입니다. 우리가 찾고있는 자원의 URL이 이동되었습니다. 새 URL에는 응답이 제공됩니다.
401 무단. 클라이언트 오류 응답을 나타냅니다. 이 경우 서버는 요청을 계속 발행하기 전에 인증해야한다고 알려줍니다.
404 찾을 수 없습니다. 또한 클라이언트의 오류 응답을 나타냅니다. 특히 이것은 서버가 원하는 리소스를 찾을 수 없음을 의미합니다. -
상태를 조건부로 확인하고 상태 코드에 따라 다른 작업을 제공하려면 어떻게해야합니까? 우리는 이것을 쉽게 할 수 있습니다 : -
지금 스크립트를 실행하면 다른 결과를 얻을 수 있습니다. 그것을 시도하고 우리가 얻는 것을보십시오. ?
각 상태 코드와 함께 제공되는 설명적인 짧은 메시지가 필요한 경우 를 사용할 수 있습니다. 200 상태 코드의 경우 단순히 괜찮습니다. -
파이썬 요청 의 응답을 확인하십시오
이 시점에서 우리는 기본적인 파이썬 요청을 만드는 방법을 알고 있습니다. 요청 후 응답해야합니다.
이전 섹션에서는 응답 상태 코드를 얻는 방법을 보았습니다. 이제 우리는 응답의 본문, 즉 우리가 요청한 실제 자원을 읽고 싶습니다. 이렇게하려면
를 사용해야합니다. Google 홈페이지를 찾고 있다고 가정 해 봅시다.
스크립트를 실행하면 다음을 얻을 수 있습니다.
<code>~~~http
GET / HTTP/1.1
Host: www.google.com
Accept-Language: en-GB,en;q=0.5
~~~</code>
로그인 후 복사
로그인 후 복사
우리가 얻은 리소스 (텍스트/html 문서)가 인쇄하기에는 너무 길기 때문에 를 추가했습니다. 얼마나 걸립니까? 이 정보를 얻기 위해
를 사용할 수 있습니다. 위의 예에서는 13931 바이트입니다. 여기에는 인쇄가 너무 많아야합니다!
resp.reason
(다음 내용은 공간에 의해 제한되어 있으며 요약 만 유지됩니다. 자세한 내용은 원본 텍스트를 참조하십시오) .
API 사용
파이썬이 라이브러리를 요청하는 이유 중 하나는 API와의 상호 작용을 매우 쉽게 만들기 때문입니다. 이 경우, 우리는 간단한 API를 사용하여 이름을 고려할 때 사람의 나이를 예측합니다. 이 API를 Agify라고합니다.
커스텀 헤더
HTTP 헤더는 HTTP 커뮤니케이션을 위해 양 당사자에게 추가 정보를 제공합니다. 다음 예에서는 HTTP get 요청의 헤더를 변경하는 방법을 볼 수 있습니다. 특히, 우리는 사용자 에이전트 및 수용 언어 헤더를 변경합니다. 사용자 에이전트는 서버에 응용 프로그램, 운영 체제 및 에이전트를 요청하는 공급 업체에 대한 정보를 서버에 알려줍니다. 허용 된 헤더는 클라이언트가 이해할 수있는 언어를 전달합니다.
결론
이 기사에서는 HTTP 프로토콜에 대해 논의하고 간단한 이론적 소개를합니다. 그런 다음 파이썬 요청 라이브러리를 살펴 보았습니다. 기본 Python HTTP 요청을 작성하는 방법과 요구에 따라 사용자 정의하는 방법을 배웠습니다.
python의 HTTP 요청에 대한 FAQ (다음 내용은 공간 제한으로 인해 예약되어 있습니다. 자세한 내용은 원본 텍스트를 참조하십시오)
.
Python의 요청 라이브러리는 무엇입니까?
요청 라이브러리를 설치하는 방법은 무엇입니까?
요청을 사용하여 간단한 GET 요청을 만드는 방법은 무엇입니까?
위 내용은 HTTP Python 요청에 대한 초보자 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!