[Network] HTTP란 ?

유얌얌·2024년 10월 2일

CS

목록 보기
1/15

💡HTTP란?

- HTTP의 정의

HTTP (Hypertext Transfer Protocol)
클라이언트와 서버 간에 데이터를 주고받는 데 사용되는 텍스트 기반의 프로토콜

웹 브라우저와 웹 서버 간에 문서를 전송하는 데 주로 사용되며, HTML 문서, 이미지, 스크립트, 스타일 시트 등의 웹 페이지 자원을 전송하는 데 적합

🤔프로토콜
컴퓨터 내부 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의 하는 규칙 체계

- 요청과 응답의 과정

  1. 클라이언트가 서버에 요청을 보냄 (HTTP 메서드와 원하는 자원의 경로 URI를 포함)
  2. 서버는 클라이언트의 요청을 받고, 해당 자원에 대한 응답을 생성 (상태 코드, 헤더, 본문등으로 구성)
  3. 서버의 응답이 클라이언트에게 전송 (전송에는 TCP/IP 프로토콜 사용)
  4. 클라이언트는 서버로부터 받은 데이터를 해석하여 웹 페이지를 렌더링 (HTML, CSS, JavaScript 등의 웹 페이지 구성 요소들이 사용)

- HTTP 메서드

▪️ GET

  • 특정 리소스 조회 (리소스를 요청하고 서버에서 해당 리소스를 반환)
  • 조회할 때 POST도 사용할 수 있지만, GET 메서드는 캐싱이 가능하기에 GET을 사용하는 것이 유리
  • GET을 사용하는 요청은 오직 데이터를 받기만 함

▪️ POST

  • 특정 리소스에 데이터를 제출 (Create)
  • 메시지 바디(body)를 통해 서버로 요청 데이터 전달하면 서버는 요청 데이터를 처리하여 업데이트

▪️ PUT

  • 특정 리소스를 수정 (Update)
  • 만일 요청 메세지에 리소스가 있으면 덮어쓰고, 없으면 새로 생성

▪️ DELETE

  • 특정 리소스를 삭제 (Delete)

- HTTP 특징

▪️ 무상태 프로토콜 (Stateless)

HTTP에서는 서버가 클라이언트의 상태를 보존하지 않음
클라이언트가 요청할 때 이미 필요한 데이터를 다 담아서 보내기 때문에 아무 서버나 호출해도 OK

➡️ 장점 : 서버 확장성이 높다. 응답 서버를 쉽게 바꿀 수 있기 때문에 무한한 서버 증설이 가능하다.
➡️ 단점 : 로그인과 같이 유저의 상태를 유지해야하는 서비스라면, 브라우저 쿠키, 서버 세션, 토큰 등을 이용해 상태를 유지해야 한다.

▪️ 비 연결성

비연결성을 가지는 HTTP에서는 실제로 요청을 주고받을 때만 연결을 유지하고 응답을 주고 나면 TCP/IP 연결을 끊는다.


➡️ 장점 : 최소한의 자원으로 서버를 유지할 수 있다.

➡️ 단점 : 1. TCP/IP 연결을 새로 맺어야하기 때문에, 3 way handshake 시간이 추가된다.
2. 웹 브라우저로 사이트를 요청하면 HTML 뿐만 아니라 JavaScript, CSS, 추가 이미지 등 수 많은 자원이 함께 다운로드 된다.
이 자원들을 각각 요청할 때마다 연결을 끊고, 다시 연결하고 반복하는 것은 비효율적이기 때문에, HTTP 1.1부터는 지속 연결을 통헤 문제를 해결하였다.

❓면접 예상 질문

GET과 POST의 차이는 무엇인가요? GET은 정보를 요청할 때 사용하는 메서드이고, POST는 서버에 데이터를 보내는 메서드입니다.

HTTP의 특징
HTTP 개념

profile
조금씩이라도 꾸준하게

0개의 댓글