HTTP 상태코드와 메서드

MINKY·2023년 9월 5일
0

CS스터디

목록 보기
3/7

HTTP 상태 코드

1xx (정보)

  • 서버가 요청을 잘 받았으며 해당 프로세스를 계속 이어가며 처리하는 것을 의미
    • 100 : 계속함을 의미

2xx (성공)

  • 서버가 요청을 잘 받았고 이를 기반으로 클라이언트에서 성공적으로 데이터를 보낸 것을 의미
    • 200 OK : 요청이 성공적으로 되었습니다.
    • 201 Created : 요청이 성공적이었으며 그 결과로 새로운 리소스가 생성되었습니다.

3xx (리다이렉션)

  • 서버가 클라이언트의 요청에 대해 완료를 위해 추가 작업 조치가 필요합니다.
    • 301 Moved Permanently : 이 응답코드는 요청한 리소스의 URI 가 변경되었음을 의미한다. 변경된 새로운 URI를 301 상태코드와 함께 주어야 한다.

4xx (클라이언트 오류)

  • 클라이언트가 요청한 페이지를 제공할 수 없거나 클라이언트의 요청이 잘못되어 결과적으로 요청을 처리할 수 없다.
    • 400 Bad Request : 서버가 클라이언트 요청을 이해할 수 없음을 의미
    • 401 Unathorized : 클라이언트의 인증이 되지 않음을 의미
    • 404 Not found : 요청받은 컨텐츠를 찾을 수 없다는 것을 의미

5xx (서버 오류)

  • 서버가 클라이언트의 요청을 처리하지 못하는 상태
    • 500 Internal Server Error : 서버에 오류가 있음을 의미
    • 502 Bad Gateway : 게이트웨이 또는 프록시서버가 오류가 생겼음을 의미
    • 504 Gateway Timeout : 게이트웨이 또는 프록시서버가 정해진 Timeout 시간동안 클라이언트의 요청을 처리하지 못함을 의미

더 많은 상태코드는 https://ko.wikipedia.org/wiki/HTTP상태코드 에서 확인 가능

HTTP 메서드

웹 서버와 클라이언트 간에 데이터 요청과 응답을 주고받을 때 사용되는 명령어

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH
  • OPTIONS
  • CONNECT
  • TRACE

GET과 POST의 차이

GET : 데이터를 읽다

  • url을 기반으로 데이터를 요구하는 방법
  • url을 기반으로 하기 때문에 길이 제한이 있다.
  • 성공 시 HTTP 상태코드 200을 반환한다.
  • 캐싱이 가능하다
  • url을 기반으로 요청하기 때문에 해당 요청의 파라미터가 브라우저 기록에 남는다.
  • url을 기반으로 요청하기 때문에 요청할 때 ASCII 문자열만을 보낼 수 있다.
  • 사용자 이름, 비밀번호 등 민감한 정보를 전달할 때 사용하지 않는다.

POST : 데이터를 생성하다.

  • url이 아닌 HTTP message body를 통해 데이터를 전달
  • HTTP message body를 통해 전달되기 때문에 길이 제한이 없다.
  • 성공적으로 데이터를 생성할 경우 HTTP 상태코드 201을 반환한다. (생성한 경우 201, 생성하지 않은 경우 200을 반환하기도 한다.)
  • 캐싱이 불가능함
  • url을 기반으로 요청하지 않기 때문에 해당 요청의 파라미터가 브라우저 기록에 남지 않음
  • HTTP message body로 요청하기 때문에 ASCII 문자열 뿐만 아니라 모든 유형의 데이터를 기반으로 요청할 수 있음
  • 사용자 이름, 비밀번호 등 민감한 정보를 전달할 때 사용

차이점 정리

  • 사용목적 : GET은 서버의 리소스에서 데이터를 요청할 때, POST는 서버의 리소스를 새로 생성하거나 업데이트 할 때 사용한다.
  • DB로 따지면 GET은 SELECT에 가깝고, POST는 CREATE에 가깝다고 보면 됨

PUT과 PATCH의 차이

둘 다 데이터를 수정할 때 쓰는 메서드

PUT : 업데이트하는 데이터의 전체를 보낸다.

  • 요청을 보낼 때 해당 데이터 전체를 보내야 하고 전체 데이터의 교체를 의미함
  • 해당 데이터가 없다면 새로 생성하고 있다면 요청할 때 보낸 데이터와 교체를 진행
  • 사용자 정보를 업데이트하거나 파일을 업로드 할 때

PATCH : 업데이트하는 데이터의 일부를 보내다.

  • 요청을 보낼 때 수정하는 일부분만 보내면 되고 일부분의 교체를 의미함
  • 댓글 시스템에서 사용자가 댓글의 내용을 수정할 때

0개의 댓글