*요청과 응답 (웹 브라우저로 웹 사이트에 접속할 때 일어나는 일)
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) : 실행된 결과를 일정한 형식으로 가공, 이 과정에서 템플릿 도구를 활용하기도 함
- 응답 : 실행된 결과를 클라이언트에게 되돌려 줌
*
'스타트업 > 프로그래밍' 카테고리의 다른 글
[프로그래밍] 파이썬 프록시 서버 (0) | 2020.09.02 |
---|---|
[프로그래밍] Django 웹서버 만들기 (0) | 2020.09.02 |
[프로그래밍] HTTP 통신 (0) | 2020.09.02 |
[프로그래밍] HTTP 통신 vs Socket 통신 (0) | 2020.09.02 |
[프로그래밍] Python Network Socket (0) | 2020.09.01 |