요청과 응답: Request와 Respond
저번 포스트에서도 잠깐 언급했지만,
- 클라이언트가 먼저 서버에게 요청한다 = request,
- 서버가 데이터를 주는 것을 응답한다 = respose
1. Request를 하기 위해 셋팅하는 항목들
- URL은 고유한 값
- Header 인증 토큰, 인증을 위한 값을 세팅, 데이터의 개수, 데이터의 크기를 세팅을 한다.
- Body의 데이터는 Json의 형식으로 보낸다. 서버가 받으면, 처리를 한다.
- Authorization: 인증 토큰
- 제대로 된 요청이면,서버가 처리해주고, 응답을 주는 것.
- 우리는 위의 기능을 해주는 함수를 호출해주면 된다.
2. Response로 받아올 때의 HTTP Status Codes
- HTTP의 상태코드: 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능이다.
- 해당 표시는 약속이다. 세계 표준이다.
보통 100번대에서 500번대를 사용하는데 크게 다음과 같이 나눌 수 있다.
1xx (Informational): 요청이 수신되어 처리중 2xx (Successful): 요청 정상 처리 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 |
HTTP 상태코드 종류와 의미
- 먼저 100 번대는 요청이 수신되어 처리중이라는 뜻인데 거의 사용하지 않으므로 생략하기로 하겠다.
- 다음으로, 200번대는 성공의 의미를 뜻하는데 더 자세하게는 다음과 같다.
200 OK : 요청 성공 201 Created : 요청 성공해서 새로운 리소스가 생성됨 202 Accepted : 요청이 접수되었으나 처리가 완료되지 않았음 204 No Content : 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 |
- 300 번대는 리다이렉션인데 이는 location 헤더가 있으면 location 위치로 자동 이동하는 것을 리다이렉트라고 한다.
301 Moved Permanently : 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음 302 Found : 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음 303 See Other : 리다이렉트시 요청 메서드가 GET으로 변경 304 Not Modified : 캐시를 목적으로 사용 307 Temporary Redirect : 리다이렉트시 요청 메서드와 본문 유지(요청 메서드를 변경하면 안된다.) 308 Permanent Redirect : 리다이렉트시 요청 메서드와 본문 유지(처음 POST를 보내면 리다이렉트도 POST 유지) |
400번대는 클라이언트 측에서 오류가 발생했다고 알려주는 것이다. 자세한 사항은 다음과 같다.
400 Bad Request : 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음 401 Unauthorized : 클라이언트가 해당 리소스에 대한 인증이 필요함 403 Forbidden : 서버가 요청을 이해했지만 승인을 거부함 404 Not Found : 요청 리소스를 찾을 수 없음 |
500번대는 서버 측에서 오류가 발생했다고 알려주는 것이다. 자세한 사항은 다음과 같다.
500 Internal Server Error : 서버 문제로 오류 발생, 애매하면 500 오류 503 Service Unavailable : 서비스 이용 불가 |
이외에도 다양한 상태 코드가 있는데 HTTP 상태 코드 - MDN에서 찾아보면 된다.
Response의 메시지도 Json으로 받는다.
'BackEnd > 백엔드' 카테고리의 다른 글
[POSTMAN]지금까지 작성한 API 문서 = API 명세서로 확인 (0) | 2022.07.01 |
---|---|
코드 프레임 워크 가져오기 / 단위테스트(Unit test) (0) | 2022.07.01 |
[백엔드] Postman 설치: API 테스트 프로그램/툴 (0) | 2022.06.21 |
RestFul API 개념: 자원(Resource), 행위(Method), 표현(Message) (0) | 2022.06.21 |
API 개념 설명 (0) | 2022.06.21 |