:ledger: HTTP란 무엇인지 비유를 통해 작성해봤다.

:one: HTTP = 배달 서비스 ㅇㅈ?

HTTP는 뭔가 서버와 클라이언트 사이의 배*의 민족 같은 느낌이다. HTTP는 인터넷에서 데이터를 주고받는 “규칙” 또는 “프로토콜”인데 이를 쉽게 비유하자면, HTTP는 우리가 쇼핑몰 사이트를 이용할 때 물건을 주문하고 배송받는 과정과 비슷하다. 웹사이트에 접속하면, 웹사이트 서버에게 어떤 데이터를 요청하고, 서버는 그 데이터를 배달해주는 거로 이해했다.

  • 클라이언트 (나): 웹사이트를 보고 싶은 사용자
  • 서버 (가게): 사용자가 원하는 정보를 제공하는 곳
  • HTTP (배달 규칙): 주문과 배달을 규칙에 맞게 처리하는 방법

:two: HTTP 상태코드

웹사이트를 요청할 때 서버는 요청이 어떻게 처리되었는지 알려준다. 이를 상태 코드라고 한다. 상태 코드는 1xx~5xx 으로 구성되어 있는데, 아래와 같다.

  • 1xx : 정보
    • 100 (Continue) : 요청의 일부를 서버가 받음, 나머지를 꼐속 보내라는 의미 (배달 요청 들어옴 ㅋㅋ)
  • 2xx : 성공
    • 200 (OK): 요청이 성공적으로 처리됨
    • 201 (Created): 요청성공 및 새로운 자원 생성
  • 3xx : 리다이렉션
    • 301 (Moved Permanently): 요청한 리소스가 영구적으로 새로운 URL로 이동되었음을 나타냄
    • 302 (Found) : 요청한 리소스가 임시로 다른 URL로 이동했음을 나타냄
  • 4xx: 클라이언트 오류
    • 400 (Bad Request): 잘못된 요청임을 나타냄
    • 401 (Unauthorized): 인증이 필요함을 나타냄
    • 404 (Not Found): 요청한 리소스를 찾을 수 없음을 나타내요.
  • 5xx: 서버 오류
    • 500 (Internal Server Error): 서버가 요청을 처리하는 동안 오류가 발생했음을 나타내요.
    • 502 (Bad Gateway): 서버가 게이트웨이 또는 프록시 역할을 하는 서버로부터 유효하지 않은 응답을 받았음을 나타내요.

:three: HTTP 메서드

  • GET: “이 정보 좀 보여줘~” (데이터 가져오기)
  • POST: “이걸 새로 추가해줘~” (새 데이터 추가)
  • PUT: “이 정보를 업데이트해줘~” (기존 데이터 수정)
  • DELETE: “이 정보를 삭제해줘~” (데이터 삭제)

:fire: 마무리

강의에서 사람들이 말하는 것 중 400번대는 내 잘못 500번대는 니 잘못이 정말 웃겼었다. 요즘 공부하는게 지칠때도 많아서 뭔가에 비유해서 이해하려고 노력하는데, 좋은 것 같다.