웹 크롤링을 위한 HTTP 필수 지식
웹 크롤링을 제대로 하기 위해서는 웹 브라우저 주소창에 http://
와 같이 등장하는 HTTP에 대한 이해가 필요합니다.
HTTP는 웹 브라우저와 서버 간의 통신을 담당하는 프로토콜
(통신 규칙)로, 요청과 응답을 통해 데이터를 주고 받기 위한 약속
입니다.
이번 수업에서는 HTTP의 기본 개념과 요청과 응답의 개념에 대해 알아보겠습니다.
HTTP는 어떻게 동작할까요?
HTTP는 클라이언트
(웹 브라우저)가 서버에 데이터를 요청(Request)하고, 서버
가 클라이언트에 데이터를 응답(Response)하는 방식으로 동작합니다.
웹 크롤링은 주로 HTTP 요청
을 통해 웹 페이지의 데이터를 가져오는 과정으로, 이를 위해서는 HTTP 요청과 응답에 대한 이해가 필요합니다.
HTTP 요청: 데이터를 요청하는 방법
HTTP 요청(Request)
은 웹 브라우저(또는 크롤링 프로그램)가 서버에 특정 정보를 요청하는 메시지입니다.
요청은 주로 다음과 같은 요소로 구성됩니다.
-
메서드(Method) 서버에 어떤 작업을 요청할지를 정의합니다. 가장 많이 사용하는 메서드는
GET
과POST
입니다.-
GET : 서버에서 데이터를 가져올 때 사용합니다. (예: 화면에 표시할 웹 페이지의 HTML 데이터)
-
POST : 서버에 데이터를 보낼 때 사용합니다. (예: 로그인 정보를 서버에 전송)
-
GET /index.html HTTP/1.1
Host: www.example.com
-
URL : 요청할 자원의 위치를 나타냅니다. 예를 들어,
https://www.example.com/index.html
이 URL입니다. -
헤더(Header) : 추가적인 정보를 담고 있으며, 요청을 더 세부적으로 제어할 수 있습니다. 예를 들어,
User-Agent
헤더는 요청을 보낸 클라이언트의 정보를 전달합니다.
HTTP 응답: 요청에 대한 답변
HTTP 응답(Response)
은 서버가 클라이언트의 요청에 대해 보내는 메시지입니다.
응답은 주로 다음과 같은 요소로 구성됩니다.
- 상태 코드(Status Code): 요청이 성공적으로 처리되었는지, 오류가 발생했는지 등을 나타냅니다. 예를 들어
200 OK
는 요청이 성공했음을 의미하고,404 Not Found
는 요청한 자원을 찾을 수 없음을 의미합니다.
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 342
<html>
<body>
<h1>Example Page</h1>
</body>
</html>
-
헤더(Header) : 응답에 대한 추가 정보를 제공합니다. 예를 들어
Content-Type
헤더는 응답의 데이터 형식을 나타냅니다. -
본문(Body) : 요청한 자원의 실제 데이터가 여기에 포함됩니다. 웹 페이지의 HTML, 이미지, JSON 데이터 등이 여기에 포함될 수 있습니다.
웹 크롤링에서는 주로 GET
요청을 통해 웹 페이지의 HTML 데이터를 가져옵니다.
이후 서버가 반환한 응답의 상태 코드와 본문을 확인하여, 크롤링이 성공적으로 이루어졌는지 판단합니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!