HTTP 프로토콜이란?

  1. 통신 프로토콜
    1. 프로토콜 : 상호 간에 정의한 규칙을 의미. 특정 기기 간에 데이터를 주고받기 위해 정의되었다.
    2. 브라우저와 서버 간 데이터를 주고받기 위한 방식으로 HTTP프로토콜을 사용하고 있다.

특징

  • Stateless 프로토콜.
    • 데이터를 주고 받기 위한 각각의 데이터 요청이 서로 독립적으로 관리됨.
    • 이전 데이터 요청과 다음 데이터 요청이 서로 관련이 없다.
      • 서버는 세션과 같은 별도의 추가 정보를 관리하지 않아도 되고, 다수의 요청 처리 및 서버의 부하를 줄일 수 있는 성능상 이점을 가져감
  • 일반적으로 TCP/IP통신 위에서 동작, 기본 포트는 80번

HTTP Request & HTTP Response

  • 데이터를 주고받기 위해서는 요청을 보내고 응답을 받아야 한다.
  • 클라이언트 : 요청을 보내는 쪽(브라우저)
  • 서버 : 요청을 받는 쪽. 데이터를 보내주는 원격지의 컴퓨터

URL

  • 서버에 자원을 요청하기 위해 입력하는 영문 주소.
    • http://www.domain.com:1234/path/to/resource?a=b&x=y
      • http:// ⇒ protocol
      • www.domain.com ⇒ host
      • :1234 ⇒ port
      • /path/to/resource ⇒ resource.path
      • ?a=b&x=y ⇒ query

HTTP 요청 메서드

  • 요청하는 데이터에 특정 동작을 수행하고 싶다면 ⇒ HTTP요청 메서드 이용
    • GET : 존재하는 자원에 대한 요청
    • POST : 새로운 자원을 생성
    • PUT : 존재하는 자원에 대한 변경
    • DELETE : 존재하는 자원에 대한 삭제
  • 데이터에 대한 조회 생성 변경 삭제 동작을 HTTP요청 메서드로 정의가 가능.
  • 기타 요청 메서드
    • HEAD : 서버 헤더 정보를 획득. GET과 비슷하나 Response Body를 변환하지 않음
    • OPTIONS : 서버 옵션들을 확인하기 위한 요청. CORS에서 사용

HTTP 상태 코드

  • 서버에서 설정해주는 응답 정보
  • 상태 코드로 에러 처리를 할 수 있기 때문에 프론트에게 중요

2XX ⇒ 성공

200번대의 상태 코드는 대부분 성공을 의미

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

3XX ⇒ 리다이렉션

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

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

4XX ⇒ 클라이언트 에러

400번대의 상태 코드는 대부분 클라이언트의 코드가 잘못된 경우.

유효하지 않은 자원 요청, 요청이나 권한이 잘못된 경우 발생.

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

5XX ⇒ 서버 에러

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

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



참조 링크