Python-연결 재사용
클라이언트가 서버에 유효한 요청을하면 클라이언트간에 임시 연결이 설정되어 전송 및 수신 프로세스를 완료합니다. 그러나 통신중인 프로그램간에 자동 요청 및 응답이 필요하기 때문에 연결을 유지해야하는 시나리오가 있습니다. 예를 들어 대화 형 웹 페이지를 생각해보십시오. 웹 페이지가로드 된 후 양식 데이터를 제출하거나 추가 CSS 및 JavaScript 구성 요소를 다운로드해야합니다. 더 빠른 성능과 클라이언트와 서버 간의 끊김없는 통신을 위해 연결이 유지되어야합니다.
Python은 urllib3클라이언트와 서버 간의 연결 재사용을 처리하는 방법이있는 모듈. 아래 예에서는 연결을 생성하고 GET 요청과 함께 다른 매개 변수를 전달하여 여러 요청을 수행합니다. 여러 응답을 수신하지만 프로세스에 사용 된 연결 수도 계산합니다. 우리가 볼 수 있듯이 연결의 수는 연결의 재사용을 의미하는 변경되지 않습니다.
from urllib3 import HTTPConnectionPool
pool = HTTPConnectionPool('ajax.googleapis.com', maxsize=1)
r = pool.request('GET', '/ajax/services/search/web',
fields={'q': 'python', 'v': '1.0'})
print 'Response Status:', r.status
# Header of the response
print 'Header: ',r.headers['content-type']
# Content of the response
print 'Python: ',len(r.data)
r = pool.request('GET', '/ajax/services/search/web',
fields={'q': 'php', 'v': '1.0'})
# Content of the response
print 'php: ',len(r.data)
print 'Number of Connections: ',pool.num_connections
print 'Number of requests: ',pool.num_requests
위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.
Response Status: 200
Header: text/javascript; charset=utf-8
Python: 211
php: 211
Number of Connections: 1
Number of requests: 2