(해석 또는 이해가 잘못된 부분이 있다면 댓글로 편하게 알려주세요.)
Because HTTP uses TCP/IP, and is text-based, as opposed to using some obscure binary format, it is simple to talk directly to a web server.
-> HTTP가 TCP/IP를 사용하고 모호한 이진 형식을 사용하는 것과 달리 텍스트 기반이기 때문에 웹 서버와 직접적으로 소통하기 편리합니다.
The Telnet utility connects your keyboard to a destination TCP port and connects the TCP port output back to your display screen. Telnet is commonly used for remote terminal sessions, but it can generally connect to any TCP server, including HTTP servers.
-> Telnet 유틸리티는 여러분의 키보드를 대상 TCP 포트에 연결하고 TCP 포트 출력을 다시 디스플레이 화면에 연결합니다.
-> Telnet은 원격 터미널 세션에 주로 사용되지만, HTTP 서버를 포함한 임의의 TCP 서버에 연결할 수 있습니다.
You can use the Telnet utility to talk directly to web servers. Telnet lets you open a TCP connection to a port on a machine and type characters directly into the port. The web server treats you as a web client, and any data sent back on the TCP connection is displayed onscreen.
-> Telnet 유틸리티는 웹 서버와 직접 소통하기 위해 사용될 수 있습니다.
-> Telnet은 여러분이 장치의 포트에 TCP 연결을 열고 직접 문자를 입력할 수 있게 합니다.
-> 웹 서버는 여러분을 웹 클라이언트로 받아들이고, TCP 연결을 통해 전달된 모든 데이터는 화면에 표시됩니다.
Let’s use Telnet to interact with a real web server. We will use Telnet to fetch the document pointed to by the URL http://www.joes-hardware.com:80/tools.html (you can try this example yourself).
-> 실제 웹 서버와 상호작용하기 위해 Telnet을 사용해봅시다.
-> 우리는 http://www.joes-hardware.com:80/tools.html 로 표현되는 문서를 가져오기 위해 Telnet을 사용할 것입니다.
Let’s review what should happen:
• First, we need to look up the IP address of www.joes-hardware.com and open a TCP connection to port 80 on that machine. Telnet does this legwork for us.
• Once the TCP connection is open, we need to type in the HTTP request.
• When the request is complete (indicated by a blank line), the server should send back the content in an HTTP response and close the connection.
-> 어떤 일이 일어나야 하는지 함께 정리해봅시다.
Our example HTTP request for http://www.joes-hardware.com:80/tools.html is shown in Example 1-1. What we typed is shown in boldface.
-> http://www.joes-hardware.com:80/tools.html에 대한 예제 HTTP Request는 Example 1-1에 있습니다.
-> 여러분이 입력하는 값은 굵은 글씨로 나타납니다.
% telnet www.joes-hardware.com 80
Trying 161.58.228.45...
Connected to joes-hardware.com.
Escape character is '^]'.
GET /tools.html HTTP/1.1
Host: www.joes-hardware.comHTTP/1.1 200 OK
Date: Sun, 01 Oct 2000 23:25:17 GMT
Server: Apache/1.3.11 BSafe-SSL/1.38 (Unix) FrontPage/4.0.4.3
Last-Modified: Tue, 04 Jul 2000 09:46:21 GMT
ETag: "373979-193-3961b26d"
Accept-Ranges: bytes
Content-Length: 403
Connection: close
Content-Type: text/html<HTML> <HEAD><TITLE>Joe's Tools</TITLE></HEAD> <BODY> <H1>Tools Page</H1> <H2>Hammers</H2> <P>Joe's Hardware Online has the largest selection of hammers on the earth.</P> <H2><A NAME=drills></A>Drills</H2> <P>Joe's Hardware has a complete line of cordless and corded drills, as well as the latest in plutonium-powered atomic drills, for those big around the house jobs.</P> ... </BODY> </HTML> Connection closed by foreign host.
Telnet looks up the hostname and opens a connection to the www.joes-hardware.com web server, which is listening on port 80. The three lines after the command are output from Telnet, telling us it has established a connection.
-> Telnet은 호스트 이름을 알아내고 80번 포트로 대기중인 www.joes-hardware.com 웹 서버에 연결을 엽니다.
-> 명령 실행 직후 세 줄은 연결 설정이 완료되었음을 알려주는 Telnet으로부터의 출력값입니다.
We then type in our basic request command, “GET /tools.html HTTP/1.1”, and send a Host header providing the original hostname, followed by a blank line, asking the server to GET us the resource “/tools.html” from the server www.joes-hardware.com. After that, the server responds with a response line, several response headers, a blank line, and finally the body of the HTML document.
-> 여러분은 그 다음에 서버로부터 "/tools.html" 리소스를 얻기 위하여 기본적인 Request 명령인 "GET /tools.html HTTP/1.1"을 입력합니다. 그리고 줄바꿈하여 원본 호스트 이름을 제공하는 Host Header를 전송합니다.
-> 잠시 후, 서버가 응답 라인에 Response를 남깁니다. Response Header 뒤에는 줄바꿈하여 HTML 문서의 body 부분이 나타납니다.
Beware that Telnet mimics HTTP clients well but doesn’t work well as a server. And automated Telnet scripting is no fun at all. For a more flexible tool, you might want to check out nc (netcat). The nc tool lets you easily manipulate and script UDP- and TCP-based traffic, including HTTP. See http://netcat. sourceforge.net for details.
-> Telnet은 HTTP 클라이언트를 수준급으로 모방하고 있지만 서버로써는 제대로 작동하지 않는다는 점에 유의해야 합니다.
-> 그리고 자동화된 Telnet 스크립트는 전혀 재미있지 않습니다.
-> 보다 유연한 툴을 사용하려면 nc(netcat)을 확인해보세요.
-> nc 툴은 여러분이 손쉽게 HTTP를 포함한 UDP와 TCP 기반의 트래픽을 조작하고 스크립팅할 수 있게 합니다.
-> 자세한 내용은 http://netcat.sourceforge.net을 참고하길 바랍니다.
There are several versions of the HTTP protocol in use today. HTTP applications need to work hard to robustly handle different variations of the HTTP protocol. The versions in use are:
-> 오늘날 사용되는 HTTP 프로토콜에는 몇 가지 버전이 있습니다.
-> HTTP 애플리케이션은 HTTP 프로토콜의 다양한 형태를 강력히 처리하기 위해 열심히 노력해야 합니다.
-> 버전의 종류는 다음과 같습니다.
HTTP/0.9
The 1991 prototype version of HTTP is known as HTTP/0.9. This protocol contains many serious design flaws and should be used only to interoperate with legacy clients. HTTP/0.9 supports only the GET method, and it does not support MIME typing of multimedia content, HTTP headers, or version numbers. HTTP/0.9 was originally defined to fetch simple HTML objects. It was soon replaced with HTTP/1.0.
-> HTTP/0.9
HTTP/1.0
1.0 was the first version of HTTP that was widely deployed. HTTP/1.0 added version numbers, HTTP headers, additional methods, and multimedia object handling. HTTP/1.0 made it practical to support graphically appealing web pages and interactive forms, which helped promote the wide-scale adoption of the World Wide Web. This specification was never well specified. It represented a collection of best practices in a time of rapid commercial and academic evolution of the protocol.
-> HTTP/1.0
1.0은 널리 배포된 HTTP의 첫 번째 버전입니다. HTTP/1.0에는 버전과 HTTP 헤더, 몇 가지 메소드, 멀티미디어 객체 핸들링 기능이 추가되었습니다. HTTP/1.0은 매력적인 웹 페이지와 인터랙티브 폼을 그래픽적으로 지원하게 하여, World Wide Web의 광범위한 채택을 촉진하는 데 영향을 주었습니다.
이러한 설명이 결코 HTTP/1.0을 구체화하지는 못합니다. 이는 프로토콜의 급격한 상업적, 학술적 진화의 측면에서 가장 실용적인 사례의 집합을 나타냅니다.
(해석이 이게 맞는지 잘 모르겠습니다)
HTTP/1.0+
Many popular web clients and servers rapidly added features to HTTP in the mid-1990s to meet the demands of a rapidly expanding, commercially successful World Wide Web. Many of these features, including long-lasting “keep- alive” connections, virtual hosting support, and proxy connection support, were added to HTTP and became unofficial, de facto standards. This informal, extended version of HTTP is often referred to as HTTP/1.0+.
-> HTTP/1.0+
HTTP/1.1
HTTP/1.1 focused on correcting architectural flaws in the design of HTTP, specifying semantics, introducing significant performance optimizations, and removing mis-features. HTTP/1.1 also included support for the more sophisticated web applications and deployments that were under way in the late 1990s. HTTP/1.1 is the current version of HTTP.
-> HTTP/1.1
HTTP-NG (a.k.a. HTTP/2.0)
HTTP-NG is a prototype proposal for an architectural successor to HTTP/1.1 that focuses on significant performance optimizations and a more powerful framework for remote execution of server logic. The HTTP-NG research effort concluded in 1998, and at the time of this writing, there are no plans to advance this proposal as a replacement for HTTP/1.1. See Chapter 10 for more information.
-> HTTP-NG (HTTP/2.0)