(해석 또는 이해가 잘못된 부분이 있다면 댓글로 편하게 알려주세요.)
In the summer of 1997, the World Wide Web Consortium launched a special project to investigate and propose a major new version of HTTP that would fix the problems related to complexity, extensibility, performance, and transport dependence. This new HTTP was called HTTP: The Next Generation (HTTP-NG).
1997년 여름, World Wide Web 컨소시움에서 complexity, extensibility, performance, transport dependence와 연관된 문제를 해결할 새로운 HTTP 버전을 조사하고 제안하기 위한 특별한 프로젝트가 개최되었습니다.
이 새로운 HTTP를 HTTP: The Next Generation (이하 HTTP-NG) 라고 부릅니다.
A set of HTTP-NG proposals was presented at an IETF meeting in December 1998. These proposals outlined one possible major evolution of HTTP. This technology has not been widely implemented (and may never be), but HTTP-NG does represent the most serious effort toward extending the lineage of HTTP. Let’s look at HTTP-NG in more detail.
HTTP-NG의 제안은 1998년 12월 IETF 미팅에서 발표되었습니다.
그들은 HTTP의 실현 가능한 주요한 진화에 대해 언급하였습니다.
아직까지 HTTP-NG의 기술은 널리 구현되지 않았고 앞으로도 그러지 않을 수 있지만, HTTP-NG가 HTTP의 계보를 확장하기 위해 가장 공을 들인 것은 분명합니다.
지금부터 HTTP-NG에 대해 자세히 살펴봅시다.
The theme of HTTP-NG can be captured in three words: “modularize and enhance.” Instead of having connection management, message handling, server processing logic, and protocol methods all intermixed, the HTTP-NG working group proposed modularizing the protocol into three layers, illustrated in Figure10-1:
HTTP-NG의 테마는 "모듈화 및 향상"이라는 세 글자로 요약할 수 있습니다.
HTTP-NG 단체는 연결 관리, 메시지 처리, 서버 처리 로직, 프로토콜 메서드를 모두 뒤섞인 채로 두기보다 Figure 10-1과 같이 프로토콜을 세 가지 레이어로 모듈화하는 것을 제안하였습니다.
• Layer 1, the message transport layer, focuses on delivering opaque messages between endpoints, independent of the function of the messages. The message transport layer supports various substacks (for example, stacks for wireless environments) and focuses on the problems of efficient message delivery and handling. The HTTP-NG project team proposed a protocol called WebMUX for this
layer.
첫 번째 레이어는 "메시지 전송 레이어(Message Transport Layer)"입니다.
메시지의 기능에 관계없이 엔드포인트간 메시지를 전달하는 것에 초점을 맞춥니다.
메시지 전송 레이어는 무선통신 환경 등 다양한 서브스택을 지원할 수 있으며 오로지 효율적인 메시지 전송과 처리에만 집중합니다.
HTTP-NG 프로젝트 팀은 해당 레이어에서 사용하는 프로토콜로 WebMUX를 제안하였습니다.
• Layer 2, the remote invocation layer, defines request/response functionality where clients can invoke operations on server resources. This layer is independent of message transport and of the precise semantics of the operations. It just provides a standard way of invoking any server operation. This layer attempts to provide an extensible, object-oriented framework more like CORBA, DCOM, and Java RMI than like the static, server-defined methods of HTTP/1.1. The HTTP-NG project team proposed the Binary Wire Protocol for this layer.
두 번째 레이어는 "원격 호출 레이어(Remote Invocation Layer)"입니다.
클라이언트가 서버 리소스에 대한 작업을 호출할 수 있는 요청과 응답의 기능을 정의합니다.
메시지 전송 레이어와 연산의 정확한 의미와는 무관합니다.
그저 임의의 서버 연산을 호출하기 위한 표준 방식을 제공할 뿐입니다.
원격 호출 레이어는 정적으로 서버가 정의하는 HTTP/1.1의 방식과 달리 COBRA, DCOM, Java RMI와 같이 확장 가능한 객체지향의 프레임워크를 지원하기 위해 노력합니다.
HTTP-NG 프로젝트 팀은 해당 레이어에 Binary Wire Protocol의 사용을 제안하였습니다.
• Layer 3, the web application layer, provides most of the content-management logic. All of the HTTP/1.1 methods (GET, POST, PUT, etc.), as well as the HTTP/1.1 header parameters, are defined here. This layer also supports other services built on top of remote invocation, such as WebDAV.
세 번째 레이어는 웹 응용 프로그램 레이어입니다.
대부분의 콘텐츠 관리 로직을 담당하고 있습니다.
HTTP/1.1의 헤더 파라미터를 비롯하여 모든 HTTP/1.1의 메서드(GET, POST, PUT 등)가 이곳에서 정의됩니다.
동시에 WebDAV와 같이 원격 호출을 기반으로 구축된 여러 서비스를 지원하기도 합니다.
Once the HTTP components are modularized, they can be enhanced to provide better performance and richer functionality.
Much of the philosophy and functionality goals of HTTP-NG borrow heavily from structured, object-oriented, distributed-objects systems such as CORBA and DCOM. Distributed-objects systems can help with extensibility and feature functionality.
HTTP-NG의 철학과 기능 목표 중 상당 부분은 COBRA와 DCOM처럼 구조화된 객체지향적 분산 객체 시스템에서 종종 차용되고 있습니다.
분산 객체 시스템은 확장성과 기능에 도움을 줄 수 있습니다.
A community of researchers has been arguing for a convergence between HTTP and more sophisticated distributed-objects systems since 1996. For more information about the merits of a distributed-objects paradigm for the Web, check out the early paper from Xerox PARC entitled “Migrating the Web Toward Distributed Objects” (ftp://ftp.parc.xerox.com/pub/ilu/misc/webilu.html).
연구 커뮤니티에서는 1996년부터 HTTP와 더 정교한 분산 객체 시스템을 결합하는 것에 대한 논의가 이어지고 있습니다.
웹에서의 분산 객체 패러다임이 가지고 있는 장점이 궁금하다면 "Migrating the Web Toward Distributed Objects"라는 이름을 가진 Xerox PARC의 초기 논문을 살펴보시기 바랍니다.
The ambitious philosophy of unifying the Web and distributed objects created resistance to HTTP-NG’s adoption in some communities. Some past distributed-objects systems suffered from heavyweight implementation and formal complexity. The HTTP-NG project team attempted to address some of these concerns in the requirements.
웹과 분산 객체를 통합하려는 야심찬 철학 때문에 일부 커뮤니티에서 HTTP-NG 도입에 저항하기도 하였습니다.
과거의 분산 객체 시스템은 과도한 구현과 형식적인 복잡성으로 인해 어려움을 겪었습니다.
HTTP-NG 프로젝트 팀은 요구사항 중 일부 우려들을 해소하기 위해 노력했습니다.
: HTTP - Next Generation
HTTP-NG에서 제안한 레이어 중에서 바이너리 프로토콜을 통해 연산의 의미와 관계없이 서버 리소스에 대한 작업을 호출하는 것이 있었다(Remote Invocation Layer). HTTP를 공부하면서 '바이너리'라는 말을 어디서 들어봤는지 곰곰이 생각해보니 HTTP/2.0 에 관련한 내용이 있었다.
HTTP/1.1은 텍스트 기반으로 메시지를 전송하기 때문에 텍스트를 해석하기 위한 오버헤드가 발생한다. 텍스트 방식으로 본문을 압축할 수는 있어도 헤더를 압축할 수는 없기 때문이다. HTTP-NG도 이러한 문제를 인식하고 있었고, 바이너리 프로토콜을 통해 해결하고자 했다. 오늘날의 HTTP/2.0도 과거의 HTTP-NG가 제안했던 것처럼 Binary Frame을 사용해서 전송 속도를 더 빠르게 만들었다.