Network

[Network] HTTP(Hypertext Transfer Protocol)의 시작

JoonYong 2024. 2. 11. 23:38

 

1. HTTP의 시작

 

1990년도 Tim Berners-Lee와 그의 동료들이 웹을 세상에 내놨을때 웹은 크게 4가지 요소였습니다.

  1. HTML : 웹페이지를 만드는 컴퓨터 언어
  2. URL, URl : 원하는 웹 페이지에 방문할 수 있게 해주는 주소
  3. web browser, web server : 웹 페이지를 주고받는 소프트웨어
  4. HTTP : 웹 브라우저와 웹 서버가 통신할 때 사용하는 통신규칙

이것은 웹을 구성하는 가장 중요한 요소들이고 웹이 아무리 복잡해도 이 네 가지를 한 발자국도 벗어날 수 없습니다.

처음 세상에 등장한 HTTP는 단순한 통신 규칙이었습니다. 하지만 웹이 성장하면서 성능, 보안, 안정성을 확보하기 힘들어졌습니다. 오죽하면 당시 사람들은 World Wide WebWorld Wide wait라고 불렀습니다. 이런 문제를 해결하기 위해서 HTTP는 보다 풍부한 기능을 가진 프로토콜로 발전하기 시작합니다. 오늘날에는 HTML과 같은 텍스트 파일뿐만 아니라 이미지, 오디오, 동영상과 같은 다양한 멀티미디어 파일을 전송하는 중요한 프로토콜로 발전하였습니다.


2. HTTP란?

HTTP(Hypertext Transfer Protocol)는 인터넷에서 데이터를 주고받는 데 사용되는 프로토콜입니다. 웹 브라우저와 웹 서버 간에 HTML 문서와 같은 자원을 주고받는 데 주로 사용되며, 요청-응답 모델을 따릅니다.


3. HTTP의 구성 요소

HTTP는 크게 요청(Request)응답(Response) 두 부분으로 나눌 수 있습니다. 클라이언트(보통 웹 브라우저)가 서버에게 요청을 보내면, 서버는 그에 대한 응답을 클라이언트에게 보냅니다.

 

3-1) HTTP 요청 (Request)

메서드, URL, 헤더, 바디 네 부분으로 구성됩니다.

  • 메서드: 클라이언트가 수행하고자 하는 동작을 나타냅니다. 주로 GET, POST, PUT, DELETE 등이 사용됩니다.
  • URL: 요청 대상이 되는 자원의 위치를 나타냅니다.
  • 헤더: 요청에 대한 부가 정보를 담고 있습니다.
  • 바디: 실제로 서버에 보내고자 하는 데이터를 담고 있습니다.

 

3-2) HTTP 응답 (Response)   

상태 코드, 헤더, 바디 세 부분으로 구성됩니다.

  • 상태 코드: 요청이 성공적으로 이루어졌는지, 아니면 어떤 오류가 발생했는지를 나타냅니다.
  • 헤더: 응답에 대한 부가 정보를 담고 있습니다.
  • 바디: 실제로 클라이언트에 전달하고자 하는 데이터를 담고 있습니다.

4. HTTP 특징

  1. 무상태성(Stateless): HTTP는 요청을 처리하고 나면 그 연결을 끊어버리는 무상태 프로토콜입니다. 이는 각 요청이 독립적이라는 것을 의미하며, 이전 요청과 이후 요청 사이에 상태 정보를 유지하지 않습니다. (상태 정보를 유지해야 하는 로그인 등의 기능을 구현하기 위해서는 추가적인 기술이 필요)
  2. 연결지향(Connection Oriented): 클라이언트가 서버에 요청을 시작하면 서버는 연결을 수립하고, 요청을 처리한 후 연결을 종료합니다.
  3. 요청-응답 모델(Request-Response Model): 클라이언트가 서버에 요청을 보내면, 서버는 그에 대한 응답을 반환합니다. 이는 단방향 통신을 의미합니다.
  4. 텍스트 기반(Text-Based): HTTP는 텍스트 기반의 프로토콜로, 요청과 응답이 사람이 읽을 수 있는 텍스트 형식으로 이루어집니다.

이러한 특징들은 HTTP를 웹에서 데이터를 주고받는 기본적인 프로토콜로 만들어주었습니다.