카테고리 없음

HTTP GET, POST method의 차이점 / HTTP 상태코드

abccoco 2022. 9. 23. 17:41

HTTP GET, POST method의 차이점.

GET

  • GET은 서버로부터 정보를 조회하기 위해 설계된 메소드입니다.
  • GET은 요청을 전송할 때 필요한 데이터를 Body에 담지 않고, 쿼리스트링을 통해 전송합니다.

POST

  • POST는 리소스를 생성/변경하기 위해 설계되었다.
  • GET과 달리 전송해야될 데이터를 HTTP 메세지의 Body에 담아서 전송합니다.

차이점

GETIdempotent, POSTNon-idempotent하게 설계되었다.
GETIdempotent하도록 설계되었다는 것은 GET으로 서버에게 동일한 요청을 여러 번 전송하더라도 동일한 응답이 돌아와야 한다는 것을 의미합니다.

이에 따라 GET은 설계원칙에 따라 서버의 데이터나 상태를 변경시키지 않아야 Idempotent하기 때문에 주로 조회를 할 때에 사용해야합니다.
POST는 Non-idempotent하기 때문에 서버에게 동일한 요청을 여러 번 전송해도 응답은 항상 다를 수 있습니다. 이에 따라 POST는 서버의 상태나 데이터를 변경시킬 때 사용됩니다.


HTTP 상태코드.

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다.

응답은 5개의 그룹으로 나누어집니다.

  • 1xx (정보): 요청을 받았으며 프로세스를 계속한다.
  • 2xx (성공): 요청을 성공적으로 받았으며 인식했고 수용하였다.
  • 3xx (리다이렉션): 요청 완료를 위해 추가 작업 조치가 필요하다.
  • 4xx (클라이언트 오류): 요청의 문법이 잘못되었거나 요청을 처리할 수 없다.
    • 400(잘못된 요청): 서버가 요청의 구문을 인식하지 못했다.
    • 401(권한 없음): 이 요청은 인증이 필요하다. 서버는 로그인이 필요한 페이지에 대해 이 요청을 제공할 수 있다. 상태 코드 이름이 권한 없음(Unauthorized)으로 되어 있지만 실제 뜻은 인증 안됨(Unauthenticated)에 더 가깝다.
    • 402(결제 필요): 이 요청은 결제가 필요합니다.
    • 403(Forbidden, 금지됨): 서버가 요청을 거부하고 있다. 예를 들자면, 사용자가 리소스에 대한 필요 권한을 갖고 있지 않다. (401은 인증 실패, 403은 인가 실패라고 볼 수 있음)
    • 404(Not Found, 찾을 수 없음): 서버가 요청한 페이지(Resource)를 찾을 수 없다. 예를 들어 서버에 존재하지 않는 페이지에 대한 요청이 있을 경우 서버는 이 코드를 제공한다.
  • 5xx (서버 오류): 서버가 명백히 유효한 요청에 대해 충족을 실패했다.