[Version]
⦁ 2024.05.16 / [CS / Network] HTTP 프로토콜의 모든 것
⦁ 지속해서 업데이트 예정
웹 애플리케이션은 HTTP(Hyper Text Transfer Protocol) 프로토콜을 이용하여 서비스를 제공한다. HTTP는 클라이언트와 서버 간 데이터를 주고받기 위한 표준 규약을 정의한다. 여기서 클라이언트는 데이터나 기능을 요청하는 쪽을 의미하고, 서버는 데이터를 제공하거나 기능을 처리하는 쪽을 의미한다. 이러한 구조를 통해 웹 애플리케이션은 사용자가 요청한 정보를 서버에서 가져와 화면에 표시하거나, 사용자가 입력한 정보를 서버에 전달하여 처리할 수 있다.
HTTP 프로토콜은 메시지를 통해 데이터를 주고받는다. HTTP를 통해 주고받을 수 있는 데이터는 HTML문서부터 이미지, 미디어 파일, JSON 등 다양하다.
HTTP의 상태 코드
응답 메시지의 상태 라인은 HTTP 프로토콜 버전과 상태 코드를 포함한다. 상태 코드는 클라이언트에게 응답 메시지의 상태를 전달할 때 사용된다. 다시 말해, 클라이언트는 상태 코드를 통해 응답 메시지를 적절하게 처리할 수 있다. 상태 코드는 세 자리 숫자와 함께 사람이 이해하기 쉬운 간단한 문자열로 구성되어 있다.
HTTP 프로토콜에서는 응답 상태를 크게 다섯 가지로 구분한다 첫 번째 자리 숫자는 대분류를 의미하고 두 번째 자리 숫자와 세 번째 자리 숫자를 조합한 것을 상세 분류 코드라고 한다.
- 1XX: 임시 응답 상태 코드는 클라이언트의 요청을 받은 후 서버의 처리가 진행 중임을 나타낸다. 주로 현재 상태에 대한 정보를 전달할 때 사용하며 응답 메시지는 바디 없이 상태 라인과 헤더로만 이루어져 있다.
- 2XX: 클라이언트의 요청이 성공적으로 처리되었음을 나타낸다. 클라이언트의 요청이 정상적으로 수신되고 처리되었을 때 사용된다. 가장 흔하게 사용되는 상태 코드로는 200 OK, 201 Created, 202 Accepted 등이 있다.
- 3XX: 클라이언트의 요청을 처리하는데 추가적인 작업이 필요함을 나타낸다. 일반적으로 클라이언트가 요청한 리소스가 다른 위치로 옮겨져 클라이언트가 새로운 리소스를 다시 요청해야 하는 경우다.
- 4XX: 클라이언트가 전송한 요청 메시지가 잘못되었음을 나타낸다. 요청 메시지의 문법이 잘못되었거나 인증 또는 인가되지 않은 리소스에 요청하는 경우 발생한다.
- 5XX: 서버가 클라이언트에서 받은 요청을 정상적으로 처리하지 못할 때 발생하는 에러로, 대표적으로 500 Internal Server Error가 있다.
HTTP 특징
첫 번째로 비연결성은 HTTP 프로토콜이 서버와 클라이언트 사이에 연결을 유지할 필요 없이 데이터를 주고받을 수 있음을 의미한다. 클라이언트가 요청 메시지를 보내고 서버가 응답 메시지를 보내기 위해 일시적으로 연결이 필요하지만, 여러 메시지를 주고받기 위해 하나의 연결을 계속해서 유지할 필요는 없다.
두 번째로 무상태이다. HTTP 프로토콜은 이전 요청에 의존하지 않는다. 즉, 클라이언트가 서버에 여러 요청을 해도 각 요청은 하나씩 독립적으로 처리된다.
'Computer Science > Network' 카테고리의 다른 글
[CS / Network] HTTP이란? (0) | 2024.03.13 |
---|---|
[CS / Network] IP주소에 대해 알아보자! (0) | 2024.03.12 |
[CS / Network] TCP/IP 4계층에 대해 알아보자! (0) | 2024.03.11 |
[CS / Network] 네트워크 토폴로지란? (0) | 2024.03.10 |
[CS / Network] 네트워크, 지연시간, 처리량 (0) | 2024.03.09 |