[기술] HTTP 프로토콜과 HTTP 상태 코드

dygreen·2022년 7월 17일
0

기술

목록 보기
8/9
post-thumbnail

📝 이번 글에선 HTTP 프로토콜에 대한 개념을 확실히 정리해보고자 합니다!

📌 HTTP 프로토콜이란?

: HTTP(Hypertext Transfer Protocol)통신 프로토콜입니다. 여기서 프로토콜이란 상호 간에 정의한 규칙을 의미하며, 특정 기기 간에 데이터를 주고받기 위해 정의되었습니다.

" 나는 이렇게 줄테니 넌 이렇게 받고, 난 너가 준거 그렇게 받을게 "

웹에서는 브라우저와 서버 간에 데이터를 주고받기 위한 방식으로 HTTP 프로토콜을 사용하고 있다.


📌 HTTP 프로토콜 특징

상태가 없음(stateless)

  • 상태가 없다라는 말은 이전 데이터 요청과 다음 데이터 요청이 서로 관련이 없다는 말(서로 독립적으로 관리됨)
  • 이러한 특징 덕에 서버는 세션과 같은 별도의 추가 정보를 관리하지 않아도 되고, 다수의 요청 처리 및 서버의 부하를 줄일 수 있는 성능 상의 이점이 생김
  • HTTP 프로토콜은 일반적으로 TCP/IP 통신 위애서 동작하며 기본 포트는 80임

TCP / IP ?
: Transmission Control Protocol / Internet Protocol는 현재 수많은 프로그램들이 인터넷으로 통신하는 데 있어 가장 기반이 되는 프로토콜이다.


📌 HTTP 프로토콜로 데이터 주고받기

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

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

📌 HTTP 요청 메서드

: URL을 이용하면 서버에 특정 데이터를 요청할 수 있다. 여기서 요청하는 데이터에 특정 동작을 수행하고 싶으면 HTTP 요청 메서드를 이용한다.

  • GET : 존재하는 자원에 대한 요청
  • POST : 새로운 자원을 생성
  • PUT : 존재하는 자원에 대한 변경
  • DELETE : 존재하는 자원에 대한 삭제

이와 같이 데이터에 대한 조회, 생성, 변경, 삭제 동작을 HTTP 요청 메서드로 정의할 수 있다.


📌 HTTP 상태 코드

: 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, 요청한 자원이 변경되지 않았으므로 클라이언트에서 캐싱된 자원을 사용하도록 권고

4xx - 클라이언트 에러

400번대 상태 코드는 대부분 클라이언트의 코드가 잘못된 경우이다. 유효하지 않은 자원을 요청했거나 요청이나 권한이 잘못된 경우 발생한다.

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

5xx - 서버 에러

500번대 상태 코드는 서버 쪽에서 오류가 난 경우이다

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

앞에서 배운 URL, 요청 메서드, 상태 코드를 조합하면 아래와 같은 구조가 나온다.


📚 Reference

profile
✨감명깊은 앞단을 향한 꾸준한 여정✨

0개의 댓글