작은 리액트 프로젝트로 서버와 통신하거나 Open API를 사용할 때, 여러 에러코드를 받곤 합니다.
대충만 알고 넘어갔던 에러코드와 그 근본이 되는 HTTP Method에 대해 알아가려 한다.
HTTP Method는 RESTful API를 구현할 때 중요한 역할을 하며, 클라이언트가 서버에 요청을 보낼때 사용되는 동작을 의미합니다.
이 때 클라이언트란 일반적으로 웹 브라우저, 모바일 앱, 해당 프로그램 등 사용자 인터페이스를 가집니다.
HTTP Method를 쉽게 말하자면 사용자(브라우저)가 서버에게 수행하길 원하는 행위(동작)을 지정한다. 라고 생각하면 좋을 것 같습니다.
| Method | 설명 |
|---|---|
| GET | CRUD: Read 서버로부터 리소스(HTML, TEXT, 이미지, 동영상 등)를 요청할 때 사용합니다. |
| POST | CRUD: Update 서버에 데이터를 전송할 때 사용합니다. form 데이터(input)를 서버로 전송하거나, 파일 업로드 등에 사용됩니다. |
| PUT | CRUD: Create 서버에 데이터를 업데이트(수정)할 때 사용합니다. 요청 본문에 업데이트할 데이터를 담아서 서버로 전송합니다. |
| DELETE | CRUD: Delete 서버에서 데이터를 삭제할 때 사용합니다. 요청 본문에 삭제할 데이터를 담아서 서버로 전송합니다. |
| PATCH | 서버에 부분적인 업데이트를 요청할 때 사용합니다. PUT과 비슷하지만, PUT은 전체 데이터를 업데이트하고, PATCH는 일부 데이터만 업데이트합니다. |
| HEAD | 요청한 리소스에 대한 메타 정보만을 요청합니다. GET과 유사하지만, HEAD는 응답 본문(Body)이 없습니다. |
| OPTIONS | 서버에서 제공하는 리소스에 대한 옵션 정보를 요청할 때 사용합니다. |
Status Code란 위의 HTTP Method를 사용하여 서버에 요청을 보낸 경우 응답 결과를 나타나는 3자리 숫자 코드입니다. 클라이언트가 서버에 요청을 보내면, 서버는 해당 요청에 대한 처리 결과를 상태 코드와 함께 응답합니다. 이 상태 코드를 통해 요청의 성공, 실패, 어떤 이유로 실패했는지를 알 수 있습니다.
스테이터스 코드는 앞자리 (100번대 자릿수)에 따라 대략적인 요청에 대한 처리 결과를 알 수 있습니다. 또한 사용자들에게 많이 나타나는 주요 Status Code도 알아보려 합니다.
1xx (Informational): 요청이 수신되어 처리 중인 상태
2xx (Successful): 요청이 성공적으로 처리된 상태
3xx (Redirection): 추가 조치가 필요한 상태
4xx (Client Error): 클라이언트의 잘못된 요청으로 인한 상태
5xx (Server Error): 서버의 오류로 인한 상태
이러한 HTTP Method나 Status Code를 알아두고 나면 왜 오류가 일어났는지에 대해 쉽게 알아챌 수 있습니다. 또한 클라이언트가 잘못 된 정보를 요청 할 경우, 오류 페이지를 만드는 경우에도 도움이 됩니다.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status