코딩항해기

[기초] HTTP 본문

기타/기초 지식

[기초] HTTP

miniBcake 2025. 1. 2. 13:45

 

HTTP

HTTP(HyperText Transfer Protocol)는 웹에서 클라이언트와 서버가 데이터를 주고받기 위한 프로토콜이다. 웹 브라우저가 웹 서버에 웹 페이지를 요청하고, 서버가 이에 응답하는 방식으로 동작한다.

 

HTTP의 특징

무상태성(Stateless)

HTTP는 기본적으로 무상태 프로토콜이다. 각각의 요청은 독립적으로 처리되며, 이전 요청의 정보를 가지고 있지 않는다. 이 특성 때문에 쿠키와 세션이라는 개념이 도입되었다.

 

클라이언트-서버 구조

클라이언트가 요청을 보내면 서버가 응답하는 단방향 구조로 되어있다. 이는 클라이언트와 서버의 역할을 명확히 구분하여 각각 독립적으로 발전할 수 있게 한다.

 

HTTP 메서드

GET 리소스 조회
POST 데이터 생성 및 조회
PUT 리소스 전체 수정
PATCH 리소스 일부 수정
DELETE 리소스 삭제
HEAD 헤더 정보만 조회
OPTIONS 지원되는 메서드 조회

 

HTTP 상태 코드

1XX (정보 전달)

정보 전달을 위한 상태 코드로, 요청이 수신되어 처리 중임을 알린다.

 

2XX (성공)

요청이 성공적으로 처리되었음을 알린다.

 

3XX (리다이렉션)

클라이언트의 추가 작업이 필요함을 알린다.

 

4XX (클라이언트 오류)

클라이언트의 요청에 오류가 있음을 알린다.

 

5XX (서버 오류)

서버 쪽에서 오류가 발생했음을 알린다.

 

 

[Web] HTTP 코드 정리

HTTP 에러코드 에러 메시지 100 Continue 101 Switching Protocols 200 OK, 에러 없이 전송 성공 202 Accepted, 서버가 클라이언트의 명령을 받음 203 Non-authoritative Information, 서버가 클라이언트 요구 중 일부만 전송

minibcake.tistory.com

 

HTTP 헤더

헤더는 요청이나 응답에 대한 부가적인 정보를 담고 있다.

 

일반 헤더

Date 메시지가 생성된 날짜와 시간 Date: Wed, 21 Oct 2023 07:28:00 GMT
Cache-Control 캐시 동작 방식 지정 Cache-Control: no-cache, no-store
Connection 네트워크 연결 방식 설정 Connection: keep-alive

 

요청 헤더

Host 요청하려는 서버 호스트명과 포트번호 Host: www.example.com
User-Agent 클라이언트 프로그램 정보 User-Agent: Mozilla/5.0 (Windows NT 10.0)
Accept 클라이언트가 처리 가능한 미디어 타입 Accept: text/html, application/json
Cookie 서버에 전달하는 쿠키 정보 Cookie: sessionId=abc123

 

응답 헤더

Server 서버 소프트웨어 정보 Server: nginx/1.14.0
Content-Type 응답 본문의 미디어 타입 Content-Type: text/html; charset=UTF-8
Content-Length 응답 본문의 바이트 길이 Content-Length: 348
Set-Cookie 클라이언트에 쿠키 설정 Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2023

 

HTTP 버전별 특징

HTTP/1.1 커넥션 재사용 하나의 TCP 연결로 여러 요청/응답을 처리할 수 있는 지속 연결(Keep-Alive) 지원
  파이프라이닝 도입 이전 요청에 대한 응답을 기다리지 않고 여러 요청을 연속적으로 보낼 수 있음
  호스트 헤더 추가 동일 IP에서 여러 도메인을 호스팅할 수 있도록 Host 헤더 필수화
HTTP/2 멀티플렉싱 지원 하나의 연결로 여러 요청/응답을 동시에 주고받을 수 있음
  헤더 압축 HPACK 압축 방식을 사용하여 헤더 크기를 줄이고 중복 전송 방지
  서버 푸시 기능 클라이언트 요청 없이도 서버가 필요한 리소스를 미리 전송 가능
HTTP/3 UDP 기반 QUIC TCP 대신 UDP 기반의 QUIC 프로토콜을 사용하여 연결 지연 최소화
  연결 설정 시간 단축 초기 연결 설정에 필요한 시간을 대폭 단축
  향상된 보안성 TLS 1.3을 기본으로 채택하여 보안 강화

 

 

 

 

이러한 HTTP는 RESTful API의 기반이되고 웹 서비스 통신의 표준이된다. 마이크로서비스 아키텍처의 핵심 요소이며 모바일 앱과 서버간의 통신 프로토콜을 담당한다. 여기서 보안 계층이 추가된 프로토콜이 HTTPS이다. (SSL/TLS 추가)

'기타 > 기초 지식' 카테고리의 다른 글

[기초] 인터넷 동작 방식  (0) 2025.01.01
[기초] 문자 인코딩  (0) 2024.12.30
[기초] 데브옵스 DevOps  (0) 2024.12.29
[기초] 안전한 원격 접속 표준 SSH  (0) 2024.12.27
[기초] Node.js 패키지 관리자, npm yarn  (0) 2024.12.23