HTTP 메서드와 상태코드

김멉덥·2022년 11월 21일
0

TIL

목록 보기
2/4
post-thumbnail

HTTP 메서드와 상태코드

우아한테크코스 테코톡 영상의 내용을 캡쳐하고 요약하여 정리한 포스팅 입니다.
🔗 [10분 테코톡] 코카콜라의 HTTP 메서드와 상태코드

  • 리소스가 필요하면 → HTTP 메서드로 요청하고 → 응답을 받은 상태코드
  • 웹사이트에 접속하면 웹사이트는 우리에게 화면을 보여주기 위해 많은 리소스를 다운로드한다.
  • 우리는 이러한 다운받아진 리소스를 개발자 도구의 네트워크 탭에서 볼 수 있다.

리소스란 ?

URL을 검색해서 받아온 결과물이자 텍스트, HTML, 이미지 등 그 외 서버로부터 전달받은 데이터들

리소스를 가져오는 방법

웹 브라우저 요청 흐름

  • 배민 검색 시, 검색 결과 데이터를 가져오기 위해 웹 브라우저가 하는 일

1 ) 구글 서버 주소를 찾아 HTTP 요청 메시지를 패킷에 담아 구글 서버에 전달

2 ) 구글 서버는 전달받은 메시지를 분석해서 HTTP 응답 메시지를 패킷에 담아 웹 브라우저에게 전달
→ 그러면 웹 브라우저는 전달받은 데이터로 화면을 보여주게 된다.


HTTP 메시지

HTTP 메시지 구조

▶️ 요청 메시지

서버에게 보낼 데이터의 유무에 따라 메시지 바디의 포함 유무를 결정

→ 이런식으로 포함되어 보내진다.

스타트 라인 / 헤더 부분

요청과 응답 메시지의 스타트 라인 구성 요소는 다르다.

▶️ 요청 메시지의 스타트 라인

HTTP Method, 쿼리, HTTP version

▶️ 응답 메시지의 스타트 라인

HTTP version, 상태코드, 상태를 나타내는 문구

▶️ 헤더 필드

전송에 필요한 모든 부가 정보를 담고 있다.


HTTP 메서드

주요 메서드

  • GET : 리소스 조회
  • POST : 요청 데이터 처리, 주로 등록에 사용
  • PUT : 리소스를 완전히 대체, 해당 리소스가 없으면 생성
  • PATCH : 리소스 부분 변경
  • DELETE : 리소스 삭제

GET

클라이언트가 /users/10에 데이터를 요청 → 서버는 해당 메시지에 맞는 데이터를 찾아 클라이언트에게 전송

▶️ 1 - 요청

▶️ 2 - 서버에 도착

▶️ 3 - 응답 데이터


POST

클라이언트에서 서버 users에 데이터 요청 → 서버에서는 user에 신규 리소스 식별자를 생성하여 데이터를 등록 → 서버에서 응답 메세지를 클라이언트에게 전송 (신규 리소스 내용 포함)

▶️ 1 - 요청

▶️ 2 - 서버에 도착

▶️ 3 - 응답 데이터

헤더필드에 포함되어 있는 Location 값은 신규 리소스 주소를 가리킨다.
또한 신규 리소스 생성에 대한 상태코드인 201이 포함되어 있다.

상태코드 201 : Created 요청 성공
201 Created - HTTP | MDN


PUT

클라이언트에서 서버 users/11에 데이터 요청 → 서버에서는 원래 있던 데이터를 요청받은 데이터로 변경
(리소스 대체/없으면 생성)

▶️ 1 - 요청

▶️ 2 - 대체

  • 만약 email이 없는 데이터를 보낸다면, 기존 데이터도 email이 없는 데이터로 대체된다.


PUT vs POST

PUT은 리소스의 주소를 정확히 알고있어야 한다.


PATCH

변경하고자 하는 데이터를 서버에 요청 → 해당 부분만 변경됨

▶️ 1 - 요청

▶️ 2 - 서버에 도착


DELETE

클라이언트가 삭제하고자 하는 데이터를 서버에 요청 → 서버에서 해당 리소스 삭제

▶️ 1 - 요청

▶️ 2 - 서버에 도착


HTTP 상태코드

클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능

1XX - (100 / 101 / 102)

  • 요청을 받았으며 프로세스를 계속 처리중
  • 거의 사용하지 않음

2XX - (200 / 201 / 202 / 204)

  • 요청을 성공적으로 처리했음

3XX - (301 / 302 / 303 / 304 / 307 / 308)

  • 요청 완료를 위해 웹 브라우저에서 추가 작업 조치가 필요한 경우
  • 리다이렉션의 개념이 필요 !

리다이렉션

4XX - (400 / 401 / 403 / 404)

  • 클라이언트 오류
  • 요청의 문법이 잘못되었거나 API 스팩에 맞지 않게 요청한 경우

5XX - (500 / 502 / 503)

  • 서버 오류
  • 여기서 503은 일시적 오류 == 서버가 다시 요청을 처리 할 수 있다.
profile
데굴데굴

0개의 댓글