HTTP

정안녕·2026년 1월 16일

Metaverse

목록 보기
8/16

HTTP(HyperText Transfer Protocol)

웹 브라우저와 웹 서버가 데이터를 주고받는 데 사용하는 통신 규약

클라이언트와 서버 간의 요청과 응답을 통해 작동한다.
다양한 종류의 데이터를 전송할 수 있도록 설계된 프로토콜로 웹 페이지에
포함된 각 구성 요소는 대부분 개별적인 HTTP 요청을 통해 서버로부터 요청된다.

따라서 가끔 글이 먼저 보이고 이미지가 나중에 보일 때가 있는 것이다.

일반적으로 TCP/IP 통신 프로토콜 기반으로 동작하며 HTTP를 통해 전달되는 자료는 http: 시작되는 URL로 조회할 수 있으며 사용하는 포트는 80번이다.

상태가 없는 프로토콜(Stateless Protocol)

데이터를 주고 받기 위해 행해지는 각각의 데이터 요청이 서로 독립적으로 관리된다는 의미로 이전 데이터 요청과 다음 데이터 요청이 서로 관련이
없다는 것이다.

단방향성 : 하나의 요청에 하나의 응답을 하는 방식으로 동작

[HTTP 흐름]

구글 웹사이트에 접근하고 싶다고 가정해보자. 구글 사이트가 내 화면에 표시되기 위해서는 다음 단계의 과정들이 수행되는 것이다.

1) 사용자가 웹 브라우저의 주소 창에 http://www.google.com을 입력한다.
2) 브라우저는 입력된 도메인 이름(www.google.com)을 IP 주소로 변환하기 위해 DNS(Domain Name System) 서버에 요청을 보낸다. DNS 서버는 해당 도메인의 IP 주소로 응답한다.
3. 브라우저는 받은 IP 주소를 통해 구글 서버와 TCP 연결을 설정.
4. TCP 연결이 설정되면 브라우저는 HTTP 요청 메시지를 구글 서버에 보낸다.

[주요 HTTP 메서드]

클라이언트가 서버에 요청을 보낼 때 사용되는 명령어

  1. GET : 정보를 요청하기 위해 사용 (리소스 조회)
  2. POST : 요청 데이터 처리, 주로 데이터 등록에 사용
  3. PUT : 리소스를 대체, 해당 리소스가 없으면 생성
  4. PATCH : 리소스를 일부만 변경
  5. DELETE : 리소스 삭제

[HTTP 메서드 특성]

1. 안정성(Safe)

  • 호출해도 리소스 변경이 일어나지 않는 속성
  • 여기서 안전의 기준은 오직 리소스 변경 가능성이며, 외적인 요소는 포함 x
  • GET, HEAD를 안전한 메서드라고 볼 수 있다.
    (PUT, POST,PATCH.DELETE는 리소스를 변경하는 메서드이므로)

2. 멱등성(Idempotent)

  • 동일한 요청을 여러 번 보내도 한 번 보내는 것과 같은 것
  • 같은 행위를 여러 번 반복하더라도 같은 효과를 받으며 서버의 상태로 동일하게 남음
  • 멱등성은 요청의 결과를 보고 판단
  • TimeOut 등으로 클라이언트가 서버로부터 정상 응답을 받지 못했을 때 같은 요청을 다시 해도 되는지 판단하는 근거
GET : 몇 번을 조회하더라도 같은 결과가 조회(회원 정보를 여러 번 조회한다고 정보가 달라지지 않는다.)
PUT : 결과를 대체한다. 따라서 같은 요청을 여러 번 해도 최종 결과는 같다.
DELETE : 결과를 삭제한다. 같은 요청을 여러 번 해도 삭제된 결과는 같다.
POST : 멱등이 아니다. 두 번 호출하면 에러가 발생할 수 있다. => POST로 주문을 두 번 호출하면 결제가 중복될 수 있다.

3. 캐시 가능(Cacheable)

  • 응답 결과를 캐시해 사용할 수 있는 속성.
  • GET, HEAD, POST, PATCH가 캐시 가능하나 Message Body의
    캐시 키의 복잡성 문제로 실제로는 GET, HEAD만 사용
profile
죽순 디벨롭

0개의 댓글