- 1xx (Informational): 조건부 응답
- 요청이 현재 처리중인 상태
- 2xx (Successful): 성공
- 200 OK: 요청을 정상적으로 처리했음을 의미
- 201 Created: 요청이 성공하고 새로운 리소스가 생성 됨
- 3xx (Redirection): 리다이렉션 완료
- 301 Moved Permanently: 요청한 리소스의 URI가 변경되어서, 새로운 location 정보 제공
- 304 Not Modified: 요청한 리소스가 수정되지 않아서 본래 서버가 아닌 프록시 서버로부터 캐싱 된 정보를 클라이언트에게 제공
- 4xx (Client Error): 요청 오류
- 400 Bad Request: 클라이언트의 요청이 잘못 됨
- 401 Unauthorized: 클라이언트의 인증이 되지 않았음
- 404 Not Found: 요청한 정보를 서버에서 찾을 수 없음을 의미
- 5xx (Server Error): 서버 오류
- 500 Internal Sever Error: 서버에 오류가 발생하여 해당 요청을 처리할 수 없는 상태
- 502 Bad Gateway: 게이트웨이 또는 프록시서버에 오류 발생
- 504 Gateway Timeout: 게이트웨이 또는 프록시서버가 정해진 Timeout시간동안 클라이언트의 요청을 처리 못함
- URL을 사용하여 데이터를 요청하며, 요청의 파라미터는 URL에 포함
- 2000자 미만
- URL을 기반으로 데이터를 요청하기에 요청의 파라미터가 브라우저 기록에 남는다.
- 캐싱 가능
- GET 요청의 응답은 캐싱될 수 있으며, 브라우저 및 중간 캐시 서버에서 캐시하여 이후 동일한 요청에 대한 응답을 빠르게 제공
- URL에 데이터가 노출되므로 민감한 정보(예: 아이디, 비밀번호)는 GET 요청의 URL 파라미터로 전송하지 않는다.
- ASCII 문자열 형식
- HTTP message body에 데이터를 담아 요청
- 데이터의 길이제한이 없다.
- URL 기반으로 요청하지 않기 때문에 브라우저에 기록이 남지 않는다.
- 사용자 이름, 비밀번호와 같은 민감한 정보를 안전하게 전달하는 데 적합
- POST 요청은 HTTP body를 이용하므로 XML, JSON, 문자열, 바이너리 데이터 등 다양한 형태의 데이터를 전달
- POST 요청은 주로 데이터의 생성 또는 업데이트와 같이 서버의 상태를 변경하는 용도로 사용되기 때문에 캐싱 불가능
PUT: 업데이트를 위한 HTTP 요청 메서드
- 업데이트하는 데이터의 전체를 서버에 전송하여 리소스 전체를 업데이트
- 해당 리소스가 없는 경우에는 새로 생성
- 과정: 요청을 보낼 때 전체 데이터를 서버에 전송 → 요청 데이터와 실제 데이터를 수정 후 새롭게 생성된 데이터로 전체 교체
- {a : 3, b : 4}에서 b → 5로 수정
- {a : 3, b : 5} 요청
- 데이터의 일부를 전송하면 전송하지 않은 값들은 NULL값으로 대체
PATCH: 업데이트를 위한 HTTP 요청 메서드
- 업데이트하는 데이터의 일부분만 서버에 전송하여 리소스의 일부만 업데이트
- 과정: 요청을 보낼 때 수정하고자 하는 데이터의 일부분만 서버에 전송 → 일부분의 데이터만 교체
- {a : 3, b : 4}에서 b → 5로 수정
- {b : 5} 요청
- 리소스를 효율적으로 업데이트하고 필요한 변경 사항만 전송
DELETE: 지정된 리소스를 삭제
- DELETE 요청이 성공하면 일반적으로 200 OK 또는 204 No Content 상태 코드가 반환
- 리소스가 존재하지 않으면 404 상태 코드 반환
- 메서드가 멱등성이 없다.
- DELETE 메서드는 요청을 반복적으로 실행하면 같은 리소스가 여러 번 삭제될 수 있으므로 안전하지 않다.