STORY 01 HTTP 리퀘스트 메시지를 작성한다

사용자는 원하는 기능을 수행하기 위해 브라우저의 주소창에 URL 을 입력합니다. URL 의 가장 앞단에 있는 프로토콜로 어느 성격의 서버에게 요청을 보낼 지 선택할 수 있습니다.

예를 들어, 웹 서버에게 요청을 보내기 위해서는 http 프로토콜을, 파일 서버에게 접근하기 위해서는 ftp 를 사용합니다. 프로토콜의 종류에 따라 이후에 오는 URL 의 정보가 달라집니다. 즉, 브라우저는 여러 성격의 서버에게 클라이언트 역할을 하며 어느 서버에게 요청을 보낼 지에 따라 필요한 정보가 다르기 때문에 이를 프로토콜로 구분합니다.

프로토콜을 이용하여 원하는 성격의 서버에 요청을 보낼 수 있습니다.

웹 서버 요청 시 URL 은 다음과 같은 구조로 이루어져 있습니다.

프로토콜: + // + 웹 서버 명 + / + 디렉토리명 + / + … + 파일명

URL 작성 시 파일명이 생략되어 있을 경우 서버 내 기본으로 설정되어 있는 파일 명으로 인식하며, 디렉토리명까지 생략되어 있을 경우 루트 경로로 판단합니다.

브라우저는 URL 의 구조에 따라 문자열을 파싱하여 다음과 같은 HTTP 요청 메시지를 생성합니다. 이 HTTP 요청 메시지를 원하는 서버에 전송하면 이를 해석하여 적절한 처리가 이루어집니다. HTTP 요청 메시지에는 서버에 정확히 어느 기능을 요청할 것인지에 대한 정보가 작성되어 있습니다.

# Request message
[Method] [URI] [HTTP version]
[field name] : [value]
...

[message]

HTTP 요청 메시지의 메서드(Method) 는 서버에 어떤 동작을 처리하고 싶은지 나타냅니다. 서버의 정보를 읽어오거나(GET), 생성 또는 수정(POST) 등의 동작을 명시합니다.