221208 항해99 32일차 HTTP

요니링 컴터 공부즁·2022년 12월 8일
0
  • HTTP(Hypertext Transfer Protocol)는 웹을 개발하는 사람이라면 누구나 다 알아야 하는 통신 프로토콜이다.
  • 웹에서는 브라우저와 서버 간에 데이터를 주고받기 위한 방식으로 HTTP 프로토콜을 사용하고 있으며 따라서 프런트엔드 개발자라면 필수적으로 알아야 하는 지식이 되었다.

HTTP 프로토콜 특징

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

HTTP 요청 메서드

  • URL을 이용하면 서버에 특정 데이터를 요청할 수 있다. 요청하는 데이터에 특정 동작을 수행하고 싶으면 HTTP 요청 메서드(Http Request Methods)를 이용한다.
  • 일반적으로 HTTP 요청 메서드는 HTTP Verbs라고도 불리우며 아래와 같은 주요 메서드를 갖고 있다.

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

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

    HEAD : 서버 헤더 정보를 획득. GET과 비슷하나 Response Body를 반환하지 않음
    OPTIONS : 서버 옵션들을 확인하기 위한 요청. CORS에서 사용

HTTP 상태 코드

  • URL과 요청 메서드가 클라이언트에서 설정해야 할 정보라면 HTTP 상태 코드(HTTP Status Code)는 서버에서 설정해주는 응답(Response) 정보이다.
  • 프런트엔드 개발자 입장에서는 더욱이 중요한 이유가 이 상태 코드로 에러 처리를 할 수 있기 때문이다.
  • 주요 상태 코드는 200번대부터 500번대까지이다.

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, 서버가 과부하 또는 유지 보수로 내려간 경우

참조:
프런트엔드 개발자가 알아야하는 HTTP 프로토콜 Part 1

0개의 댓글