HTTP 프로토콜

야매·2022년 3월 20일
0

프로토콜이란 상호 간에 정의한 규칙을 의미하며 특정 기기 간에 데이터를 주고받기 위해 정의되었다. 통신 프로토콜을 쉽게 풀어보면
“나는 이렇게 줄 테니 넌 이렇게 받고 난 너가 준거 그렇게 받을께”
정도가 되겠음ㅇㅇ

HTTP 프로토콜 특징

HTTP 프로토콜은 상태가 없는(stateless) 프로토콜임
= 데이터를 주고 받기 위한 각각의 데이터 요청이 서로 독립적으로 관리가 된다
= 이전 데이터 요청과 다음 데이터 요청이 서로 관련이 없다

HTTP Request & HTTP Response

HTTP 프로토콜로 데이터를 주고받기 위해서는 아래와 같이 요청(Request)을 보내고 응답(Response)을 받아야한다.

클라이언트란 요청을 보내는 쪽을 의미하며 일반적으로 웹 관점에서는 브라우저를 의미한다. 서버란 요청을 받는 쪽을 의미하며 일반적으로 데이터를 보내주는 원격지의 컴퓨터를 의미한다.

HTTP 요청 메서드

요청하는 데이터에 특정 동작을 수행하고 싶으면 HTTP 요청 메서드(Http Request Methods)를 이용한다.
  • GET : 존재하는 자원에 대한 요청
    데이터를 read, 조회하는데 사용
  • POST : 새로운 자원을 생성
    create, 새로운 정보를 추가하는데 사용
  • PUT : 존재하는 자원에 대한 변경
    • 변경, update된 새로운 정보들을 body에 실어보냄
    • 정보를 모두 새롭게 갈아끼울때 사용
  • DELETE : 존재하는 자원에 대한 삭제
  • PATCH : 정보 중 일부를 특정 방식으로 변경할 때 사용

이와 같이 데이터에 대한 조회, 생성, 변경, 삭제 동작을 HTTP 요청 메서드로 정의할 수 있다. 참고로 때에 따라서는 POST 메서드로 PUT, DELETE의 동작도 수행할 수 있다.

+) 기타 요청 메서드

  • HEAD : 서버 헤더 정보를 획득. GET과 비슷하나 Response Body를 반환하지 않음

  • OPTIONS : 서버 옵션들을 확인하기 위한 요청. CORS에서 사용


HTTP 상태 코드

앞에서 살펴본 URL과 요청 메서드가 클라이언트에서 설정해야 할 정보라면 HTTP 상태 코드(HTTP Status Code)는 서버에서 설정해주는 응답(Response) 정보이다.

2xx - 성공
200번대의 상태 코드는 대부분 성공을 의미한다.

200 : GET 요청에 대한 성공
204 : No Content. 성공했으나 응답 본문에 데이터가 없음
205 : Reset Content. 성공했으나 클라이언트의 화면을 새로 고침하도록 권고
206 : Partial Conent. 성공했으나 일부 범위의 데이터만 반환

3xx - 리다이렉션
300번대의 상태 코드는 대부분 클라이언트가 이전 주소로 데이터를 요청하여 서버에서 새 URL로 리다이렉트를 유도하는 경우다.

301 : Moved Permanently, 요청한 자원이 새 URL에 존재
303 : See Other, 요청한 자원이 임시 주소에 존재
304 : Not Modified, 요청한 자원이 변경되지 않았으므로 클라이언트에서 캐싱된 자원을 사용하도록 권고. ETag와 같은 정보를 활용하여 변경 여부를 확인

4xx - 클라이언트 에러
400번대 상태 코드는 대부분 클라이언트의 코드가 잘못된 경우다. 유효하지 않은 자원을 요청했거나 요청이나 권한이 잘못된 경우 발생한다. 가장 익숙한 상태 코드는 404 코드다. 요청한 자원이 서버에 없다는 의미임

400 : Bad Request, 잘못된 요청
401 : Unauthorized, 권한 없이 요청. Authorization 헤더가 잘못된 경우
403 : Forbidden, 서버에서 해당 자원에 대해 접근 금지
405 : Method Not Allowed, 허용되지 않은 요청 메서드
409 : Conflict, 최신 자원이 아닌데 업데이트하는 경우. ex) 파일 업로드 시 버전 충돌

5xx - 서버 에러
500번대 상태 코드는 서버 쪽에서 오류가 난 경우다.

501 : Not Implemented, 요청한 동작에 대해 서버가 수행할 수 없는 경우
503 : Service Unavailable, 서버가 과부하 또는 유지 보수로 내려간 경우

0개의 댓글