[TIL] HTTP : The Definitive Guide "p8 ~ p9"

시윤·2024년 1월 20일
0

[TIL] Two Pages Per Day

목록 보기
4/108
post-thumbnail

Chapter 1. Overview of HTTP

(해석 또는 이해가 잘못된 부분이 있다면 댓글로 편하게 알려주세요.)


❤️ 원문 번역 ❤️

Transactions

Let’s look in more detail how clients use HTTP to transact with web servers and their resources. An HTTP transaction consists of a request command (sent from cli- ent to server), and a response result (sent from the server back to the client). This communication happens with formatted blocks of data called HTTP messages, as illustrated in Figure 1-5.

-> 클라이언트가 웹 서버와 리소스를 거래하는 방법에 대해 구체적으로 살펴봅시다.
-> HTTP 트랜잭션은 Request Command(클라이언트 -> 서버)과 Response Command(서버 -> 클라이언트)으로 구성되어 있습니다.
-> 이러한 통신은 HTTP 메시지라고 불리는 형식화된 데이터 블록을 통해 일어납니다. (Figure 1-5)


Methods

HTTP supports several different request commands, called HTTP methods. Every HTTP request message has a method. The method tells the server what action to perform(fetchawebpage,runagatewayprogram,deleteafile,etc.).Table1-2 lists five common HTTP methods.
We’ll discuss HTTP methods in detail in Chapter 3.

-> HTTP는 "메소드"라고 불리는 여러 가지 Request Command를 제공합니다.
-> 모든 HTTP Request Message는 메소드를 포함합니다.
-> 메소드는 서버가 작업을 수행하기 위해 어떤 액션을 취해야 하는지(웹페이지 불러오기, 게이트웨이 프로그램 실행, 파일 삭제 등) 설명합니다.
-> Table 1-2는 일반적인 HTTP 메소드 5가지입니다.
-> HTTP 메소드에 대해서는 Chapter 3에서 자세히 이야기할 예정입니다.


Status Code

Every HTTP response message comes back with a status code. The status code is a three-digit numeric code that tells the client if the request succeeded, or if other actions are required. A few common status codes are shown in Table 1-3.

-> 모든 HTTP Response Message는 Status Code와 함께 돌아옵니다.
-> Status Code는 요청이 성공했는지 혹은 다른 액션이 필요한지 클라이언트에게 알려주는 세 자리 숫자입니다.
-> Table 1-3은 몇 가지 일반적인 Status Code입니다.

HTTP also sends an explanatory textual “reason phrase” with each numeric status code (see the response message in Figure 1-5). The textual phrase is included only for descriptive purposes; the numeric code is used for all processing.

-> HTTP는 숫자로 된 상태 코드(Status Code)를 부연설명하는 "사유 구절(Reason Phrase)"을 함께 전달합니다. (Figure 1-5)
-> 텍스트로 된 구절은 오직 설명의 목적으로 포함되어 있습니다; 숫자로 된 코드가 모든 프로세싱에 사용됩니다.

The following status codes and reason phrases are treated identically by HTTP soft- ware:
200 OK
200 Document attached
200 Success
200 All’s cool, dude
HTTP status codes are explained in detail in Chapter 3.

-> 다음과 같은 상태 코드와 사유 구절은 HTTP 소프트웨어에 의해 동일하게 해석됩니다.

  • 200 OK
  • 200 Document Attached
  • 200 Success
  • 200 All's cool, dude

-> HTTP 상태 코드는 Chapter 3에서 상세 설명합니다.


Web Pages Can Consist of Multiple Objects

"웹 페이지는 여러 개의 객체로 구성될 수 있다"

An application often issues multiple HTTP transactions to accomplish a task. For example, a web browser issues a cascade of HTTP transactions to fetch and display a graphics-rich web page. The browser performs one transaction to fetch the HTML “skeleton” that describes the page layout, then issues additional HTTP transactions for each embedded image, graphics pane, Java applet, etc. These embedded resources might even reside on different servers, as shown in Figure 1-6. Thus, a “web page” often is a collection of resources, not a single resource.

-> 애플리케이션은 작업을 성공적으로 수행하기 위해 여러 개의 HTTP 트랜잭션을 발생시킵니다.
-> 예를 들어, 웹 브라우저는 그래픽이 풍부한 웹페이지 화면을 불러와 유저에게 보여주기 위해 연쇄적인 HTTP 트랜잭션을 발생시킵니다.
-> 브라우저는 페이지의 레이아웃을 나타내는 "HTML 스켈레톤(skeleton)"을 가져오기 위한 일차적인 트랜잭션을 수행한 후, 각각의 임베디드 이미지, 그래픽 창, Java Applet 등을 위한 추가적인 HTTP 트랜잭션을 발생시킵니다.
-> 이러한 임베디드 리소스들은 서로 다른 서버에 저장되어 있을 수도 있습니다. (Figure 1-6)
-> 따라서, "웹페이지"는 보통 하나의 리소스로 이루어지지 않고 리소스의 집합으로써 존재합니다.


🧡 요약 정리 🧡

Transaction

  • 클라이언트와 서버가 리소스를 주고받는 것
    ex) 웹 페이지는 연쇄적인 HTTP 트랜잭션을 발생시켜 화면에 다양한 리소스를 시각화한 것
  • Request Message : Request Command(Method) 포함, 클라이언트 -> 서버
  • Response Message : Response Command 포함, 서버 -> 클라이언트

Methods

  • GET : 리소스를 서버에서 클라이언트로 전달
  • PUT : 클라이언트가 전달한 정보를 서버 리소스에 저장
  • DELETE : 서버에서 리소스 삭제
  • POST : 클라이언트가 전달한 정보를 서버 게이트웨이 애플리케이션에 전달
  • HEAD : 리소스의 헤더만 서버에서 클라이언트로 전달
    (파일이 수정되었는지 여부를 확인하는 등의 작업을 수행할 때, 무거운 GET 메소드보다 HEAD 메소드를 사용하는 것이 효율적)

Status Code

  • 요청의 성공 여부 전달 + 클라이언트가 추가적으로 수행해야 하는 액션 안내
  • 200(OK) : 요청한 데이터가 성공적으로 반환됨
  • 302(Redirect) : 리소스를 얻기 위해 다른 위치로 이동함
  • 404(Not Found) : 리소스를 찾을 수 없음

💛 감상 💛

  • 웹 브라우저가 웹 페이지의 HTML 문서를 가져오는 일차적인 트랜잭션을 발생시키고, 해당 스켈레톤 내에서 별도의 트랜잭션을 발생시켜 리소스들을 반환한다는 것을 새로 알게 되었다. 매일 같이 브라우저를 사용하고 있지만 브라우저 내부의 동작이 이러한 위계를 갖추고 있는 줄은 전혀 몰랐다.
  • GET 메소드 외에 HEAD 메소드가 별도로 존재하는 이유는 책에서 언급되지 않아 인터넷에 따로 검색을 해보았다. 단순히 수정 여부나 링크의 유효성 등을 확인하는 경우에는 헤더만으로도 클라이언트가 원하는 정보를 전달할 수 있다고 한다. 그렇다면 GET 메소드처럼 서버로부터 데이터 자체를 가져올 필요는 없는 것이다. 궁금한 점을 해결하는 과정에서 HEAD 메소드의 쓰임새를 더 직관적으로 이해할 수 있었다.
profile
맑은 눈의 다람쥐

0개의 댓글

관련 채용 정보