항해99 22일차 [HTTP]

Colleen·2023년 2월 5일
0
post-thumbnail
post-custom-banner

HTTP(HyperText Transfer Protocol)란?

  • 데이터를 주고 반는 양식을 정의한 '통신규약 ' 중 하나가 HTTP이다.
  • 매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약입니다.
  • 여기서 말하는 통신 규약이란, 컴퓨터끼리 데이터를 주고 받을 때 정해둔 약속을 의미한다. (정해둔 형태로 이야기 하지 않으면 안된다는 이야기)

어떻게 HTTP로 데이터를 주고 받을 까?

  • HTTP에서는 언제나 Request, Response라는 개념이 존재한다.
  • 서버와 브러우저의 관계로 가볍게 정리해 보자.
    - 브라우저는 서버에게 자신이 원하는 페이지(URL등의 정보)를 요구한다.
    - 서버는 브라우저가 원하는 페이지가 있는지 확인 하고, 있다면 해당 데이터를 실어 응답(Response)한다. 없다면 없는 페이지에 관련된 정보가 반환 된다.
    - 브라우저는 서버에게 받은 데이터를 기반으로 브라우저에 그려준다.
  • 그리고 위와 같은 사례에서 "데이터"는 어떤 데이터든 주고 받는게 가능하다.
  • HTTP에는 크게 다음과 같은 구성 요소가 존재한다.
    • Method (호출/요청 방식)

      • GET: 이름 그대로 어떤 리소스를 얻을 때 사용된다. 브라우저의 주소창에 URL을 입력하면 GET 메서드를 사용해서 서버에 요청을 보낸다.
      • POST: 웹 서버에 데이터를 게시할 때 사용하는게 일반적이다. (ex. 회원가입, 게시글 작성, 댓글 작성)
    • Header (추가 데이터. 메타 데이터)

      • 브라우저가 어떤 페이지를 원하는지
      • 요청 받은 페이지를 찾았는지
      • 요청 받은 데이터를 성공적으로 찾았는지
      • 어떤 형식으로 데이터를 보낼지

      이러한 사례 외에도 아주 다양한 의사 표현을 위한 데이터를 모두 Header 필드에 넣고 주고 받는다. 위에서 설명 된 메서드도 사실은 헤더에 포함되어 서버로 보내진다

    • Payload (데이터. 실제 데이터)

      • 서버가 응답을 보낼 때에는 항상 Payload를 보낼 수 있다.
      • 클라이언트(브라우저)가 요청을 할 때에도 Payload를 보낼 수 있다. 그리고 "GET method를 제외하곤 모두 Payload를 보낼 수 있다" 는게 HTTP에서의 약속이다.
profile
이상한 나라의 개발하는 예대생
post-custom-banner

0개의 댓글