가이드라인

HTTP 요청 및 응답

웹에서 웹 브라우저(클라이언트)와 웹 서버 간의 데이터를 교환할 때 HTTP(HyperText Transfer Protocol)라는 프로토콜(통신 규약)을 사용합니다.

웹 브라우저가 웹 서버에 데이터를 요청(Request)하면, 웹 서버는 요청에 대한 응답(Response)을 반환합니다.


HTTP 요청(Request)

HTTP 요청은 웹 브라우저가 웹 서버에게 보내는 메시지를 뜻합니다.

예를 들어 특정 웹 페이지를 열람하거나 사용자가 입력한 데이터를 웹 서버에 전송하는 경우, 웹 브라우저는 해당 웹 서버에 HTTP 요청을 보냅니다.

가장 기본적인 요청 유형은 다음과 같습니다.

  • GET: 서버로부터 데이터를 요청합니다. 예를 들어, 웹 페이지나 이미지를 불러올 때 사용합니다.

  • POST: 서버로 데이터를 전송하여 해당 데이터를 기반으로 요청된 자원을 처리하도록 합니다. 예를 들어, 웹 폼을 제출할 때 사용합니다.

요청은 주소(URL), 요청 방식(GET, POST 등), 헤더(예: 요청에 대한 메타데이터와 쿠키 등), 그리고 요청 본문(POST 요청 시 전송되는 데이터)을 포함할 수 있습니다.

requests 라이브러리를 사용 예시
# requests 라이브러리를 사용하여 HTTP 요청 보내기 import requests url = 'http://example.com' # 요청할 웹 페이지의 URL response = requests.get(url) # GET 요청을 보냄 print(response.text) # 웹 페이지의 HTML 내용 출력

HTTP 응답(Response)

HTTP 응답은 웹 서버가 클라이언트의 요청에 대해 보내는 메시지입니다.

이 응답은 요청이 성공/실패를 나타내는 상태 코드, 서버 정보, 서버로부터 반환된 데이터 등을 포함합니다.

상태 코드 예시는 다음과 같습니다,

  • 200 OK: 요청이 성공적으로 처리됐음을 나타냅니다.

  • 404 Not Found: 요청한 리소스를 찾을 수 없음을 나타냅니다.

  • 500 Internal Server Error: 서버 내부 오류가 발생함을 나타냅니다.

응답 역시 헤더와 본문을 포함할 수 있습니다.

헤더는 응답에 대한 메타데이터(예를 들어 콘텐츠 유형)를 제공하고, 본문은 실제로 반환되는 데이터(HTML 문서, 이미지 등)를 담고 있습니다.

requests 라이브러리를 사용 예시
# requests 라이브러리로 HTTP 응답 받기 import requests url = 'http://example.com' response = requests.get(url) print(response.status_code) # 상태 코드 출력 print(response.headers) # 응답 헤더 출력 print(response.text) # 응답 본문 출력

웹 페이지를 불러오는 과정

  1. 요청: 사용자가 웹 브라우저의 주소창에 URL을 입력하고 엔터를 누르면, 브라우저는 해당 URL의 웹 서버에 HTTP 요청을 보냅니다.

  2. 처리: 웹 서버는 이 요청을 받아 처리한 후, 요청된 데이터 및 웹 페이지를 HTTP 응답으로 클라이언트에 반환합니다.

  3. 응답: 브라우저는 응답 결과를 파싱하여 웹 페이지의 내용을 화면에 렌더링합니다.


실습

화면 오른쪽 코드 실행 버튼을 누르고, 크롤링 결과를 확인하거나 코드를 수정해 보세요!

가이드라인

AI 튜터

배포

디자인

업로드

수업 노트

즐겨찾기

도움말

코드 에디터

코드 실행
코드 생성

실행 결과