기타

HTTP 요청

js0616 2024. 7. 25. 16:09

HTTP(HyperText Transfer Protocol) 요청은 클라이언트(일반적으로 웹 브라우저)가 웹 서버로 보내는 메시지입니다.

이 요청은 웹 페이지를 요청하거나 다양한 작업(파일 다운로드, API 호출 등)을 수행하기 위해 사용됩니다.

HTTP 요청 메시지는 크게 요청 라인, 헤더, 본문으로 구성됩니다.

 

 

1. 요청 라인 (Request Line)

요청 라인은 HTTP 요청의 첫 번째 줄로, 다음과 같은 구조를 가집니다:

 
 HTTP 메서드 URI HTTP/버전
 
  • HTTP 메서드: 요청의 목적이나 동작을 나타내는 메서드입니다. 가장 흔한 메서드로는 GET, POST, PUT, DELETE 등이 있습니다.
  • URI: 요청할 자원의 위치를 나타내는 Uniform Resource Identifier입니다. 예를 들어, /index.html, /api/data, /search?q=query 등이 될 수 있습니다.
  • HTTP/버전: 사용하는 HTTP 프로토콜의 버전을 나타냅니다. 예를 들어, HTTP/1.1, HTTP/2 등이 있습니다.

 

2. 요청 헤더 (Request Headers)

요청 헤더는 HTTP 요청의 메타데이터를 포함하는 부분입니다. 각 헤더는 이름과 값으로 구성되며, 다양한 목적으로 사용됩니다. 일반적으로 다음과 같은 헤더가 포함될 수 있습니다:

  • Host: 요청한 서버의 호스트명과 포트를 지정합니다.
  • User-Agent: 요청을 보내는 클라이언트의 정보를 식별합니다.
  • Accept: 클라이언트가 처리할 수 있는 콘텐츠 타입을 서버에 알립니다.

 

3. 요청 본문 (Request Body)

일부 HTTP 요청은 본문을 포함할 수 있습니다. 일반적으로 POST 요청에서 사용되며, 클라이언트가 서버로 전송할 데이터를 포함합니다. 예를 들어, 사용자가 입력한 데이터나 파일 업로드와 같은 작업에 사용됩니다. 본문의 형식은 Content-Type 헤더에 따라 달라질 수 있습니다 (예: application/json, application/x-www-form-urlencoded 등).

Content-Type: application/x-www-form-urlencoded

username=johndoe&password=secretpassword
  • Content-Type: 요청 본문의 미디어 타입을 서버에 알립니다.
  • 기타 등등...

 


 

구글 예시

 

요청 라인 (Request Line):

 
GET / HTTP/1.1
 

 

HTTP 메서드로 GET 을 사용

여기서 /는 기본적으로 구글의 홈페이지를 의미합니다.

HTTP 버전으로 1.1 버전

 

 

요청 헤더 (Request Headers):

Host: www.google.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
  • Host: 요청한 서버의 호스트명을 지정합니다.
  • User-Agent: 요청을 보내는 클라이언트의 정보를 식별합니다. 여기서는 Chrome 브라우저의 User-Agent 예시를 사용하였습니다.
  • Accept: 클라이언트가 처리할 수 있는 콘텐츠 타입을 서버에 알립니다.