본문 바로가기
개발/Network

HTTP 메세지 개관

by BellOne4222 2024. 1. 31.

CH5-05. HTTP 메세지 개관


HTTP 요청 헤더 - Start-line

  • HTTP 메서드(공백) 요청 대상(공백)HTTP 버전(개행)

HTTP 메서드 : 서버에게 요청할 동작(해당 자원으로 어떤 동작을 요청할지)

  • GET : 자원 조회(”갖다줘”)
  • POST : 요청할 데이터 처리(”이 데이터 처리해줘”)
  • PUT : 자원 덮어쓰기
  • PATCH : 자원 부분 변경
  • DELETE : 자원 삭제

이외에도 HEAD, OPTIONS, TRACE, CONNECT

GET 요청

  • 리소스 조회에 사용
  • 일반적으로 쿼리 문자열을 사용하되, 본문은 없음(message body X)
  • “갖다줘”

POST 요청

  • 메세지 본문으로 처리할 데이터 전송
  • 메세지 본문에 해당하는 데이터 처리하도록 요청
  • 어떻게 처리할지는 서버가 결정(ex : 새 자원 생성, 가공)

PUT 요청

  • 자원 덮어쓰기
  • 자원이 있다면 본문으로 보낸 데이터로 대체
  • 자원이 없다면 본문으로 보낸 데이터로 생성
  • “이 자원으로 대체해줘”

PATCH 요청

  • 자원의 일부분 변경

DELETE 요청

  • 자원 삭제

안전 : 이 메서드를 수행하면 자원의 변경이 이루어질 수 있는가?

→ POST, PUT, DELETE는 삭제를 하기 때문에 안전하지 않다.

멱등성 : 여러 번 동일한 요청을 보내도 첫 요청 결과와 같은가

→ POST : 회원 가입 → 아이디 생성 → 중복되면 → 이미 가입된 회원 → 첫 요청 결과와 달라진다.

캐시 가능성 : 응답 결과를 캐시해서 사용할 수 있는가

요청 대상 : 요청할 자원의 위치

HTTP 버전 : HTTP1,1, HTTP 2.0

HTTP 응답 헤더 - Start line

  • HTTP 버전(공백)응답코드(공백)이유문구(개행)

응답 코드

  • 2XX : 성공, 200 : ok
  • 3XX : 리다이렉션(이 요청을 처리하려면 추가적인 처리가 필요함)

→ 서버에서 요청에 대해 리다이렉션 응답을 보낼때 location 헤더로 특정 위치를 알려주면 그 위치로GET 요청 → 새로운 링크로 자동으로 옮겨지는 리다이렉션

  • 4XX : 클라이언트 오류, 요청이 잘못되었다, 404 not found
  • 5XX : 서버 오류, 서버 문제

2XX 상태 코드

  • 200 OK : 요청 성공(GET)
  • 201 Created : 요청 성공, 새로운 자원 생성됨(POST)
  • 202 Accepted : 요청 성공, 처리는 아직 미완료
  • 204 No Content : 요청 성공, 응답할 데이터 없음

3XX 리다이렉션 상태 코드

  • 응답의 Location 헤더를 통해 특정 위치로 이동
  • 위치로 GET 요청

4XX 상태 코드 : 클라이언트에 의해 생긴 오류

  • 401 Unauthorized : 미인증
  • 403 Forbidden : 금지된 자원에 접근( 자원에 접근할 권한이 없음)
  • 404 Not Found : 요청한 자원 없음( 공개한 자원이 아님)

5XX 상태 코드 : 서버에 의한 오류

  • 500 Internal Server Error : 서버 오류
  • 503 Service Unavailable : 현재 이용 가능하지 않음

'개발 > Network' 카테고리의 다른 글

캐시  (0) 2024.01.31
HTTP 헤더  (0) 2024.01.31
HTTP의 특성  (0) 2024.01.31
웹 서버와 웹 어플리케이션 서버  (0) 2024.01.31
자원과 자원의 식별  (0) 2024.01.31