Skip to content

Latest commit

 

History

History
74 lines (54 loc) · 3.63 KB

http.md

File metadata and controls

74 lines (54 loc) · 3.63 KB

HTTP

HTTP란 ?

  • HTTP는 하이퍼텍스트 전송 프로토콜이다.

  • HTTP는 1989년부터 1991년에 발명되었다.

  • HTTP는 월드 와이드 웹(www)에 내제된 프로토콜이다.

  • HTTP는 인터넷에서 데이터를 주고 받을 수 있는 프로토콜이다.

  • 웹 페이지를 방문할 때마다 컴퓨터는 HTTP를 사용하여 인터넷 어딘가에 있는 다른 컴퓨터에서 해당 페이지를 다운로드한다.

    http:// ......


프로토콜(Protocol) 이란?

  • 프로토콜은 규칙(약속)이란 의미이다.
  • 컴퓨터 네트워크(관계망)에서 데이터를 주고받을 때, 이러한 규칙에 맞춰 개발함으로써 서로 정보를 교환할 수 있게 된 것이다.
  • 컴퓨터 네트워크에서 데이터를 보내고 받는 성격에 따라 프로토콜이 만들어졌다.
  • 웹 문서를 주고 받을 때는 HTTP를 사용해야하고 파일을 주고 받을 때는 FTP, 메일은 SMTP , POP 등 전송 계층과 유형에 따라 다양하게 만들어져있다.

웹 개발에서 HTTP가 중요한 이유

  • 클라이언트, 서버 모두 HTTP를 이용해 통신 하므로 웹 개발자라면 HTTP를 잘 알아야한다.
  • 에러를 해결하는데도 HTTP 지식이 중요하다.

WWW(월드 와이드 웹) 의 발명

  • www 란 웹 페이지를 네트워크 상에서 이용하기 위한 구조를 말한다.
  • www 는 실험실에서 파일을 교환하기 위해 1989년부터 1991년에 발명되었다.
  • www에서는 http라는 통신방식(프로토콜)에 기초하여 주고받기가 실행된다.
  • www는 네 개로 구성되어있다.
    1. 하이퍼텍스트 문서를 표한하기 위한 텍스트 형식의 언어 및 파일인 HTML
    2. 인터넷 상에서 문서 등을 교환하기 위한 프로토콜 HTTP
    3. 문서에 접근하도록 해주는 HTTPD의 초기 버전, 즉 HTTP를 지원하는 서버(웹 서버를 구축하다는 말은 HTTPD를 수행시킨다는 말과 같다.)

HTTP의 특징

  1. 클라이언트 서버 구조
  2. 무상태 프로토콜
  3. 비 연결성
  4. http 메세지
  5. 단순함, 확장가능

http 연결성 vs 비연결성

연결지향 - 연결을 유지하는 모델

  • TCP/IP의 경우 기본적으로 연결을 유지한다
  • 연결을 유지하는 모델에서는 클라이언트가 요청을 보내지 않더라도 계속 연결을 유지해야 한다.
  • 이러한 경우 연결을 유지하는 서버의 자원이 계속 소모된다.

비 연결성 - 연결을 유지하지 않는 모델

  • 비 연결성을 가지는 http에서는 실제로 요청을 주고 받을 때만 연결을 유지하고 응답을 주고나면 TCP/IP 연결을 끊는다.
  • 이럴 통해 최소한의 자원으로 서버 유지를 가능하게 한다.

비 연결성 한계와 극복

  • 비 연결성은 다음과 같은 한계를 가진다.

    • TCP/IP 연결을 새로 맺어야함.
    • 웹 브라우저로 사이트를 요청하면 HTML 뿐만 아니라 JavaScript, CSS, 추가 이미지 등 수많은 자원이 함께 다운로드 된다.
  • 해당 자원들을 각각 보낼때마다 연결끊고 다시 연결하고를 반복하는 것은 비효율적이기 때문에 지금은 http 지속 연결로 문제를 해결한다.

  • HTTP/2,HTTP/3 에서 더 많은 최적화

비 연결성 극복 - http 지속 연결

  • http 초기 - 연결, 종료 낭비

    • http 초기에는 각각의 자원을 다운로드하기 위해 연결과 종료를 반복해야 했다.
  • http 지속 연결

    • http 지속 연결에서는 연결이 이루어지고 난 뒤 각각의 자원들을 요청하고 모든 자원에 대한 응답이 돌아온 후에 연결을 종료한다.