본문 바로가기

Frontend

[Frontend_Roadmap] HTTP와 HTTP의 구성요소

이번시간에는 HTTP가 무엇인지 정리하고 HTTP의 요청 메서드의 종류와 구성요소에 대해 공부해보겠습니다.

 

HTTP 란?

HTTP(Hypertext Transfer Protocol)는 World Wide Web의 기초이며, 하이퍼 텍스트 링크를 사용하여 웹 페이지를 로드하는데 사용됩니다. HTTP는 네트워크로 연결된 장치 간에 정보를 전송하도록 설계된 애플리케이션 계층 프로토콜이며, 네트워크 프로토콜 스택의 다른 계층 위에서 실행됩니다. HTTP를 통한 일반적인 흐름에는 클라이언트 시스템이 서버에 요청한 후 응답 메시지를 보내는 것이 포함됩니다.

 

HTTP 요청에는 무엇이 있나요?

HTTP 요청은 웹 브라우저와 같은 인터넷 통신 플랫폼이 웹 사이트를 로드하는데 필요한 정보를 요청하는 방식입니다.

일반적인 HTTP 요청은 다양한 유형의 정보를 전달하는 일련의 인코딩된 데이터를 전달합니다. HTTP 요청에는 다음이 포함됩니다.

 

  1. HTTP 버전 유형
  2. URL
  3. HTTP 메소드
  4. HTTP 요청 헤더
  5. (Optional) HTTP 본문

HTTP 메서드란?

HTTP 동사라도 불리는 HTTP 메서드는 HTTP 요청이 쿼리된 서버에서 기대하는 작업을 나타냅니다. 예를 들면 "GET" 요청은 응답으로 정보를 기대하는 반면, "POST" 요청은 일반적으로 클라이언트가 웹 서버에 정보를 제출하고 있음을 나타냅니다.

Google Chrome의 네트워크 탭에 있는 HTTP 요청 헤더의 예

HTTP 요청 본문에는 무엇이 들어있나요?

요청의 본문은 요청에서 전송되는 정보의 '본문'을 포함하는 부분입니다. HTTP 요청의 본문에는 사용자 이름 및 비밀번호 또는 form 양식에 입력된 기타 데이터와 같이 웹 서버에 제출되는 모든 정보가 포함됩니다.

 

HTTP 응답에는 무엇이 들어있나요?

HTTP 응답은 웹 클라이언트(브라우저)에서 HTTP 요청에 대한 응답으로 인터넷 서버로부터 수신하는 응답입니다. HTTP 요청에서 요청된 내용을 기반으로 중요한 정보를 전달합니다.

  1. HTTP 상태 코드
  2. HTTP 응답 헤더
  3. (Optional) HTTP 본문

HTTP 상태 코드란?

HTTP 상태 코드는 HTTP 요청이 성공적으로 완료되었는지 여부를 나타내는데 가장 자주 사용되는 3자리 코드입니다.

  1. 1XX: Information
  2. 2XX: 성공
  3. 3XX: 리디렉션
  4. 4XX: 클라이언트 오류
  5. 5XX: 서버 오류

"XX"는 00 ~ 99 사이의 다른 숫자를 의미합니다. 숫자 '2'로 시작하는 상태 코드는 성공을 의미합니다. 클라이언트가 웹 페이지를 요청한 후 가장 일반적으로 표시되는 응답의 상태 코드는 '200 OK'로, 요청이 제대로 완료되었음을 나타냅니다.

 

응답이 '4', '5'로 시작하면 오류가 발생하여 웹 페이지가 표시되지 않습니다. '4'로 시작하는 상태 코드는 클라이언트 쪽 오류를 나타내며, '5'로 시작하는 오류는 서버 쪽 오류를 나타냅니다.

 

HTTP 응답 헤더란?

HTTP 요청과 마찬가지로 HTTP 응답에는 응답 본문에서 전송되는 데이터의 언어 및 형식과 같은 중요한 정보를 전달하는 헤더가 함께 제공됩니다.

Google Chrome 네트워크 탭에 있는 HTTP 응답 헤더의 예

 

'GET' 요청에 대한 성공적인 HTTP 응답에는 요청된 정보가 포함된 본문이 응답 본문에 포함되어 있습니다. 대부분의 웹 요청의 경우 이는 웹 브라우저에서 웹 페이지로 변환되는 HTML 데이터입니다.

 

HTTP를 통해 DDos 공격이 시작될 수 있나요?

HTTP는 "상태 비저장" 프로토콜이므로 각 명령은 다른 명령과 독립적으로 실행됩니다. 원래 HTTP 요청은 TCP 연결을 생성하고 닫았습니다. 하지만 최신 버전 HTTP 프로토콜에서 지속적인 연결을 사용하면 여러 HTTP 요청이 영구 TCP 연결을 통해 전달되어 리소스 소비가 개선됩니다. 하지만 DDos 공격의 타겟이 될 수 있습니다.

 

다음 시간에는 HTTP 작동방식에 대해 배워보겠습니다.