본문 바로가기

BackEnd/백엔드

요청(Request): Headers/ body, 응답(Respond): HTTP 상태코드

반응형

요청과 응답: 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에서 찾아보면 된다.

 

참고 링크: https://kyun2da.dev/CS/http-%EB%A9%94%EC%86%8C%EB%93%9C%EC%99%80-%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C/

 

Response의 메시지도 Json으로 받는다.



반응형