Notice
Recent Posts
Recent Comments
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

개발지식 먹는 하마 님의 블로그

HTTP Message 본문

Web

HTTP Message

devhippo 2025. 3. 18. 15:19

📌 HTTP ( HyperText Transfer Protocol )

웹에서 데이터를 주고받기 위한 프로토콜
요청과 응답을 주고받는다.

 무상태성(Stateless)

  • 서버는 클라이언트의 이전 요청 정보를 저장하지 않음
  • 이를 보완하기 위해 쿠키(Cookie) / 세션(Session) / 토큰(Token) 사용

비연결성(Connectionless)

  • 클라이언트가 요청을 보내고 서버가 응답하면 연결이 바로 종료
  • 새로운 요청을 보낼 때마다 새로운 연결을 생성해야 함

지속연결 ( Persistent Connection )

비연결성을 개선한 방법으로 한 번의 TCP 연결로 모든 요청과 응답을 주고받은 후 연결을 종료

  • TCP 3-Way HandShake와 연결 종료 횟수 감소
  • 지연 시간이 감소
  • 네트워크 리소스를 절약
  • Keep-Alive 헤더로 일정 시간이 지나면 자동으로 연결을 종료하는 타임아웃 지정 가능

포트(Port) 번호

  • HTTP 포트 80
  • HTTPS 포트 443 

 


📌 HTTP Message 구조

요청 메시지, 응답 메세지 2가지가 있다.

✉️ HTTP 요청 메세지

✅ Request Line

요청 / Path / Version

🗨️ 요청

  • Create - POST
  • Read - GET
  • Update - PUT(전체), PATCH(일부)
  • Delete - DELETE

 

Header

요청과 관련된 부가 정보

🗨️ 필수 요청 헤더

  • Host :  요청할 서버의 도메인
  • User-Agent : 클라이언트의 브라우저, OS 정보
  • Accept : 클라이언트가 받을 수 있는 콘텐츠 타입
  • Connection : 연결 유지 여부 설정

🗨️ 요청 헤더

  • Authorization : 인증 정보 포함
  • Cookie : 클라이언트 쿠키 정보
  • Cache-Control : 캐시 제어 설정

그 외에 엔티티, 보안 관련된 헤더들도 있다.

 

Message Body

POST와 PUT 요청에서 사용된다.
실제 전송하는 데이터가 담긴다.


✉️ HTTP 응답 메세지

Status Line

HTTP  Version / Status Code / Status Text

🗨️ 응답 상태 코드 & 텍스트

🔹 100 (정보 응답)

코드 텍스트 의미
100 Continue 요청이 계속 진행됨
101 Switching Protocols 프로토콜 변경 요청 승인

🔹 200 (성공 응답)

코드 텍스트 의미
200 OK 정상적인 요청 처리 완료
201 Created 요청 성공, 새로운 리소스 생성됨
204 No Content 응답 본문이 없음

🔹 300 (리디렉션)

코드 텍스트 의미
301 Moved Permanently 리소스가 영구적으로 이동
302 Found 리소스가 임시적으로 이동
304 Not Modified 캐시된 데이터가 최신 상태

🔹 400 (클라이언트 오류)

코드 텍스트 의미
400 Bad Request 잘못된 요청
401 Unauthor 인증 필요
403 Forbidden 접근 금지
404 Not Found 요청한 리소스를 찾을 수 없음

🔹 500 (서버 오류)

코드 텍스트 의미
500 Internal Server Error 서버 내부 오류
502 Bad Gateway 게이트웨이 오류
503 Service Unavailable 서버가 과부하 또는 유지보수 중

 

Header

응답 관련 정보

🗨️ 필수 응답 헤더 

  • Date : 필수, 응답이 생성된 시간
  • Content-Type : 필수, 응답 데이터의 타입
  • Server : 서버 소프트웨어 정보
  • Content-Length : 응답 데이터의 바이트 크기

이 외에도 캐시, 제어, 콘텐츠, 보안, 리디렉션 등의 헤더가 있다.

 

Message Body

HTML 또는 JSON 등의 응답 데이터
전송할 데이터가 없다면, 공백 상태이다.


📌 HTTP Method 속성

  • Safe 안전성 
    GET VS POST, DELETE, PUT, PATCH
GET은 그냥 데이터를 읽는 것이지 변환하지 않기 때문에 안전하다.
데이터를 생성, 수정, 삭제하는 메서드는 안전하지 않다.
  • Idempotent 멱등성
    호출 결과는 항상 같다.
    • 복구 매커니즘에 사용
    • 멱등하지 않다면, 중복 요청을 보내선 안됨
    • 재요청 중간에 리소스가 변경되는 것은 멱등성으로 고려하지 않음
GET -> 같은 결과가 계속 조회
PUT -> 수정 후의 결과는 계속 같다
DELETE -> 같은 요청을 여러 번해도 삭제된 결과는 같다
POST -> 멱등성을 보장하지 않는다
  • Cacheable 캐시가능성
    GET, HEAD, (POST)
    • 젼경 가능성이 적은 정적자원을 주로 캐싱한다. 

'Web' 카테고리의 다른 글

DTO (Data Transfer Object)  (0) 2025.03.31
웹 서비스 구조 및 흐름을 비유와 함께 이해하기  (0) 2025.03.20
REST API와 RESTful API  (0) 2025.03.20
TCP와 UDP  (0) 2025.03.17
API 간략 정리  (0) 2025.02.17