📍 알고가면 좋은 지식
- HTTP : HyperText Transfer Protocol의 약자. 웹 상에서 브라우저와 서버가 데이터를 주고받기 위한 표준 규약을 말함.
HTTP Request Methods란,
클라이언트가 웹서버에게 요청하는 목적 및 종류를 알리는 수단
HTTP는 Request를 독립적으로 처리하기 때문에 해당 Request가 서버로부터 어떠한 데이터를 받고자 하는지, 동작 정보를 서버에게 전달해야 한다.
따라서, 브라우저는 서버에 Reaquest시,URL과 HTTP Method를 가지고 어떠한 동작을 통해 어떤 데이터를 주고 받을 지를 명시한 HTTP Message를 보내야 한다.
종류
1. GET
- CRUD 동작 중 READ에 해당하는 동작
- 존재하고 있는 리소스에 대해 정보를 요청할 때 사용
- 수정하지 않은 그대로 데이터를 클라이언트에게 전달
2. POST
- CRUD 동작 중 CREATE에 해당하는 동작
- 새로운 리소스를 생성해달라는 요청을 할 때 사용
- 주로 내용이나 파일을 전송하기 위함.
3. DELETE
- CRUD 동작 중 DELETE에 해당하는 동작
- 리소스를 삭제해달라는 요청을 할 때 사용
- 보통 클라이언트에서 서버 리소스를 삭제하도록 하지 않음. 따라서 비활성화로 구성.
4. PUT
- CRUD 동작 중 UPDATE에 해당하는 동작
- 리소스를 개싱해달라는 요청을 할 때 사용
- 기존 데이터를 개신할 때 사용
5. HEAD
- 메세지 헤더 정보를 받기 위함
- GET과 유사하나, HEAD는 실제 문서가 아닌 문서에 대한 정보를 요청함.
- 따라서 Respose상에는 body가 없고 header정보만 있음
6. CONNECT
- 클라이언트와 서버 사이의 중간 경유를 위함
- 보통 Proxy를 통해 SSL통신을 하고자할 때 사용됨
7. OPTIONS
- 서버 측 제공 메소드에 대한 질의를 하기 위함
- 서버 측에서 지원하고 있는 메소드가 무엇인지를 알기 위해 사용
8. TRACE
- Request 리소스가 수신되는 경로를 보기 위함
- 서버로부터 받은 내용을 확인하기 위해 loop-back 테스트를 할 때 사용
9. PATCH
- 리소스의 일부분만 갱신하기 위함
- PUT과 유사하나, 모든 데이터가 아닌 리소스의 일부분만 수정할 때 사용
HTTP Status Code란,
클라이언트의 Request에 대한 성공/실패 여부를 확인할 수 있도록 만드는 코드
서버는 HTTP Status Code와 Response Body를 함께 클라이언트에게 전달한다.
HTTP Status Code는 크게 응답에 따라 1xx번대부터 5xx번대로 나눠지고, 많은 작업을 수행하지 않고도 클라이언트에게 가능한 상세하고 많은 정보를 주는 것을 목적으로 하기 때문에 보다 세분화하여 구분된다.
종류
1. 1XX (정보제공용)
2. 2XX (성공)
- 200(OK) : 요청 성공 (GET)
- 201(Create) : 생성 성공 (POST)
- 202(Accept) : 요청 접수O, 리소스 처리X
- 203(No Contents) : 요청 성공O, 내용 없음
3. 3XX(리다이렉트)
- 300(Multiple Choice) : 요청 url에 여러 리소스가 존재함
- 301(Move Permanently) : 요청 url에 새 위치로 옮겨감
- 304(Not Modified) : 요청 url의 내용이 변경X
4. 4XX(클라이언트 오류)
- 400(Bad Request) : API에서 정의되지 않은 요청 들어옴
- 401(Unauthorized) : 인증되지 않은 사용자
- 403(Forbidden) : 인증은 됐으나, 리소스 접근이 불가한 사용자
- 404(Not Found) : 요청 url에 대한 리소스 존재X
- 405(Method Not Allowed) : API에서 정의되지 않은 메소드 호출
- 406(Not Acceptable) : 처리 불가
- 408(Request Timeout) : 요청 대기 시간 초과
- 409(Conflict) : 모순
- 429(Too Many Request) : 요청 횟수 상한 초과
5. 5XX(서버 오류)
- 500(Internal Server Error) : 서버 내부 오류
- 502(Bad Gateway) : 게이트웨이 오류
- 503(Service Unavailable) :서비스 이용 불가
- 504(Gateway Timeout) :게이트웨이 시간 초과