*요청과 응답 (웹 브라우저로 웹 사이트에 접속할 때 일어나는 일)

1. 사용자가 웹 브라우저의 주소창에 주소를 입력

2. 요청 : 웹 브라우저는 요청 메시지를 작성해 웹 서버로 발송

3. 요청 메시지 전달 : 요청 메시지가 인터넷의 복잡한 통신망을 거쳐 웹 서버에 전달됨

4. 응답 : 웹 서버는 요청받은 정보를 요청자에게 보냄

5. 응답 메시지 전달 : 응답 메시지가 인터넷의 복잡한 통신망을 거쳐 웹 브라우저에 전달됨

6. 웹 브라우저가 응답 메시지를 해석해 사용자에게 정보를 출력해 줌

 

*웹 클라이언트로서 정보 요청하기

- 요청 : 일정한 약속(HTTP)에 따라 클라이언트(서비스 이용자)가 서버(서비스 제공자)에게 특정 주소(URL)에 해당하는 정보를 달라고 메시지를 보내는 것

- 요청을 해서 웹 환경에 공개된 자원에 접근할 수 있음

- 자원 : 웹 문서, 이미지, 음악, 영상 등 여러 가지 형태의 정보

- 자원을 조회하는 것, 로그인, 글 올리기, 인터넷 쇼핑 등 다양한 일이 모두 요청을 통해 이루어짐

- 웹 공간에 존재하는 수많은 자원은 주소로 식별

- 이를 URL (Uniform Resource Locator)

- 어떤 자원의 URL을 알면, 파이썬으로 그 자원을 요청할 수 있음

 

*웹에 정보 요청하기

- URL과 웹 요청에 관련된 모듈들을 urllib(URL 관련 라이브러리) 패키지로 묶어 제공

- urllib.parse : URL 해석 조작 기능을 담은 모듈

- urllib.request : HTTP 요청 기능을 담은 모듈

- urllib.request 모듈의 HTTP 요청 기능

- urllib.request.urlopen(요청할 URL).read().decode('utf-8') 이라는 표현을 실행하면 웹 요청을 보낼 수 있음

 

*웹 서버로서 정보 제공하기

- 웹 서버 프로그램이 어디선가 들어온 요청을 받아 응답하기까지 거치는 절차

- 수신 대기(listen) : 클라이언트의 요청이 오기를 기다림

- 중계(route) : 요청을 받으면 요청 메시지(URL, 메서드)를 해석하여 그에 해당하는 기능을 호출

- 실행 : 중계 과정에서 호출된 기능을 실제로 처리, 이 과정에서 DB 시스템과 같은 프로그램 외부의 자원을 활용하기도 함

- 출력 결과 가공(render) : 실행된 결과를 일정한 형식으로 가공, 이 과정에서 템플릿 도구를 활용하기도 함

- 응답 : 실행된 결과를 클라이언트에게 되돌려 줌

 

*

반응형

+ Recent posts