HTTP 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
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===


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


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


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


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


== [[HTTP 메서드]] ==
=== HTTP/3 ===
* QUIC(Quick UDP Internet Connections) 도입
* UDP에서 구현 된 TCP + TLS + HTTP/2와 유사
* QUIC의 3-handshake: 속도가 더 빨라지진 않았지만 인증, 암호화 매커니즘 포함
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)
원본 주소 "https://itwiki.kr/w/HTTP"