HTTP: 두 판 사이의 차이

IT위키
편집 요약 없음
편집 요약 없음
 
1번째 줄: 1번째 줄:
[[분류:네트워크]][[분류:프로토콜]][[분류:인터넷]]
[[분류:네트워크]]
[[분류:프로토콜]]
[[분류:인터넷]]
 
;HyperText Transport Protocol
;HyperText Transport Protocol
* 1989년 당시 제네바의 CERN에서 일하고 있던 Tim Berners-Lee가 인터넷 상의 하이퍼텍스트 시스템을 만들기 위해 제안
* 초기에 Mesh라고 불리다 1990년에 구현 과정에서 WWW라 명명


== 버전별 차이 ==
*1989년 당시 제네바의 CERN에서 일하고 있던 Tim Berners-Lee가 인터넷 상의 하이퍼텍스트 시스템을 만들기 위해 제안
*초기에 Mesh라고 불리다 1990년에 구현 과정에서 WWW라 명명
 
==버전별 차이==
 
===HTTP/0.9===
 
*HTTP 가장 초기 버전으로, 원래는 버전 번호가 없다.
**(향후 구분을 위해 0.9라고 버전번호 부여)
*단순히 HTML 파일만 전송하는 프로토콜
**오류 코드 또는 응답 코드 또한 HTML에 포함하여 회신
*사용가능 메서드: GET
*HTTP 헤더가 존재하지 않음
 
===HTTP/1.0===
 
;RFC 1945
 
*헤더를 통해 HTTP 버전 코드를 송신하고, 상태 코드를 회신 받을 수 있음
*헤더의 Content-Type 구분을 통해 HTML이 아닌 다른 형태의 문서 전송 가능
*사용가능한 메서드: GET, POST, PUT
 
===HTTP/1.1===
 
;RFC 2068
 
*HTTP/1.0이 문서화된지 몇 달 후 1997년 초에 공개
*Keep Alive 추가
**커넥션이 재사용될 수 있게 하여 재연결 지연 감소
*파이프라이닝 추가
**첫번째 요청에 대한 응답이 완전히 전송되기 이전에 두번째 요청 전송 가능
**커뮤니케이션 레이턴시를 감소
*Host 헤더 추가
**동일 IP 주소에 대해 다른 도메인을 호스트하는 기능이 추가되어 코로케이션 가능
*청크된 응답 지원
*캐시 제어 메커니즘 추가
*사용가능한 메서드: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE
 
===HTTP/2===


=== HTTP/0.9 ===
*2015년에 발표하였으나, 현장에 많이 적용되지 않음
* HTTP 가장 초기 버전으로, 원래는 버전 번호가 없다.
*구글이 만든 SPDY를 기반으로 표준화
** (향후 구분을 위해 0.9라고 버전번호 부여)
*멀티플렉싱: 여러개의 HTTP 요청/응답을 하나의 TCP연결에서 보냄
* 단순히 HTML 파일만 전송하는 프로토콜
*HPACK: 기법을 통해서 요청/응답 헤더를 압축
** 오류 코드 또는 응답 코드 또한 HTML에 포함하여 회신
*흐름 제어: 복수의 스트림이 단일 연결에서 전송되지만 각각의 흐름 제어를 통해서 클라이언트에서 받아들일 수 있을 만큼만 전송 가능
* 사용가능 메서드: GET
*TLS 내재화: HTTP/2는 스펙상 평문으로도 보낼 수 있지만 실제 브라우저는 모두 TLS 위에서만 동작
* HTTP 헤더가 존재하지 않음
*서버 푸시: 클라이언트가 명시적으로 요청하지 않아도 서버가 선제적으로 보낼 수 있음
*QoS: 요청에 대해 우선순위 부여 가능


=== HTTP/1.0 ===
===HTTP/3===
;[https://tools.ietf.org/html/rfc1945 RFC 1945]
* 헤더를 통해 HTTP 버전 코드를 송신하고, 상태 코드를 회신 받을 수 있음
* 헤더의 Content-Type 구분을 통해 HTML이 아닌 다른 형태의 문서 전송 가능
* 사용가능한 메서드: GET, POST, PUT


=== HTTP/1.1 ===
*QUIC(Quick UDP Internet Connections) 도입
;[https://tools.ietf.org/html/rfc2068 RFC 2068]
*UDP에서 구현 된 TCP + TLS + HTTP/2와 유사
* HTTP/1.0이 문서화된지 몇 달 후 1997년 초에 공개
*QUIC의 3-handshake: 속도가 더 빨라지진 않았지만 인증, 암호화 매커니즘 포함
* Keep Alive 추가
** 커넥션이 재사용될 수 있게 하여 재연결 지연 감소
* 파이프라이닝 추가
** 첫번째 요청에 대한 응답이 완전히 전송되기 이전에 두번째 요청 전송 가능
** 커뮤니케이션 레이턴시를 감소
* Host 헤더 추가
** 동일 IP 주소에 대해 다른 도메인을 호스트하는 기능이 추가되어 코로케이션 가능
* 청크된 응답 지원
* 캐시 제어 메커니즘 추가
* 사용가능한 메서드: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE


=== HTTP/2 ===
== [[HTTP 코드]] ==
* 2015년에 발표하였으나, 현장에 많이 적용되지 않음
* 구글이 만든 SPDY를 기반으로 표준화
* 멀티플렉싱: 여러개의 HTTP 요청/응답을 하나의 TCP연결에서 보냄
* HPACK: 기법을 통해서 요청/응답 헤더를 압축
* 흐름 제어: 복수의 스트림이 단일 연결에서 전송되지만 각각의 흐름 제어를 통해서 클라이언트에서 받아들일 수 있을 만큼만 전송 가능
* TLS 내재화: HTTP/2는 스펙상 평문으로도 보낼 수 있지만 실제 브라우저는 모두 TLS 위에서만 동작
* 서버 푸시:  클라이언트가 명시적으로 요청하지 않아도 서버가 선제적으로 보낼 수 있음
* QoS: 요청에 대해 우선순위 부여 가능


=== HTTP/3 ===
== [[HTTP 메서드]] ==
* QUIC(Quick UDP Internet Connections) 도입
* UDP에서 구현 된 TCP + TLS + HTTP/2와 유사
* QUIC의 3-handshake: 속도가 더 빨라지진 않았지만 인증, 암호화 매커니즘 포함

2021년 10월 10일 (일) 01:58 기준 최신판


HyperText Transport Protocol
  • 1989년 당시 제네바의 CERN에서 일하고 있던 Tim Berners-Lee가 인터넷 상의 하이퍼텍스트 시스템을 만들기 위해 제안
  • 초기에 Mesh라고 불리다 1990년에 구현 과정에서 WWW라 명명

버전별 차이[편집 | 원본 편집]

HTTP/0.9[편집 | 원본 편집]

  • HTTP 가장 초기 버전으로, 원래는 버전 번호가 없다.
    • (향후 구분을 위해 0.9라고 버전번호 부여)
  • 단순히 HTML 파일만 전송하는 프로토콜
    • 오류 코드 또는 응답 코드 또한 HTML에 포함하여 회신
  • 사용가능 메서드: GET
  • HTTP 헤더가 존재하지 않음

HTTP/1.0[편집 | 원본 편집]

RFC 1945
  • 헤더를 통해 HTTP 버전 코드를 송신하고, 상태 코드를 회신 받을 수 있음
  • 헤더의 Content-Type 구분을 통해 HTML이 아닌 다른 형태의 문서 전송 가능
  • 사용가능한 메서드: GET, POST, PUT

HTTP/1.1[편집 | 원본 편집]

RFC 2068
  • HTTP/1.0이 문서화된지 몇 달 후 1997년 초에 공개
  • Keep Alive 추가
    • 커넥션이 재사용될 수 있게 하여 재연결 지연 감소
  • 파이프라이닝 추가
    • 첫번째 요청에 대한 응답이 완전히 전송되기 이전에 두번째 요청 전송 가능
    • 커뮤니케이션 레이턴시를 감소
  • Host 헤더 추가
    • 동일 IP 주소에 대해 다른 도메인을 호스트하는 기능이 추가되어 코로케이션 가능
  • 청크된 응답 지원
  • 캐시 제어 메커니즘 추가
  • 사용가능한 메서드: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE

HTTP/2[편집 | 원본 편집]

  • 2015년에 발표하였으나, 현장에 많이 적용되지 않음
  • 구글이 만든 SPDY를 기반으로 표준화
  • 멀티플렉싱: 여러개의 HTTP 요청/응답을 하나의 TCP연결에서 보냄
  • HPACK: 기법을 통해서 요청/응답 헤더를 압축
  • 흐름 제어: 복수의 스트림이 단일 연결에서 전송되지만 각각의 흐름 제어를 통해서 클라이언트에서 받아들일 수 있을 만큼만 전송 가능
  • TLS 내재화: HTTP/2는 스펙상 평문으로도 보낼 수 있지만 실제 브라우저는 모두 TLS 위에서만 동작
  • 서버 푸시: 클라이언트가 명시적으로 요청하지 않아도 서버가 선제적으로 보낼 수 있음
  • QoS: 요청에 대해 우선순위 부여 가능

HTTP/3[편집 | 원본 편집]

  • QUIC(Quick UDP Internet Connections) 도입
  • UDP에서 구현 된 TCP + TLS + HTTP/2와 유사
  • QUIC의 3-handshake: 속도가 더 빨라지진 않았지만 인증, 암호화 매커니즘 포함

HTTP 코드[편집 | 원본 편집]

HTTP 메서드[편집 | 원본 편집]