[TIL] HTTP : The Definitive Guide "p262 ~ p263"

시윤·2025년 3월 15일

[TIL] Two Pages Per Day

목록 보기
108/146
post-thumbnail

Chapter 11. Client Identification and Cookies

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


✏️ 원문 번역


Fat URLs

Some web sites keep track of user identity by generating special versions of each URL for each user. Typically, a real URL is extended by adding some state information to the start or end of the URL path. As the user browses the site, the web server dynamically generates hyperlinks that continue to maintain the state information in the URLs.

  • 일부 웹 사이트는 사용자마다 특별한 버전의 URL을 생성하여 사용자의 신원을 추적합니다.

  • 대개 실제 URL은 URL 경로의 시작이나 끝에 상태 정보를 추가하여 확장됩니다.

  • 사용자가 사이트를 탐색할 때 웹 서버는 동적으로 하이퍼링크를 생성하여 URL에 상태 정보를 계속해서 유지합니다.

URLs modified to include user state information are called fat URLs. The following are some example fat URLs used in the Amazon.com e-commerce web site. Each URL is suffixed by a user-unique identification number (002-1145265-8016838, in this case) that helps track a user as she browses the store.

...
<a href="/exec/obidos/tg/browse/-/229220/ref=gr_gifts/002-1145265-8016838">All
Gifts</a><br>
<a href="/exec/obidos/wishlist/ref=gr_pl1_/002-1145265-8016838">Wish List</a><br>
...
<a href="http://s1.amazon.com/exec/varzea/tg/armed-forces/-//ref=gr_af_/002-1145265-
8016838">Salute Our Troops</a><br>
<a href="/exec/obidos/tg/browse/-/749188/ref=gr_p4_/002-1145265-8016838">Free
Shipping</a><br>
<a href="/exec/obidos/tg/browse/-/468532/ref=gr_returns/002-1145265-8016838">Easy
Returns</a>
...
  • 사용자의 상태 정보를 포함하도록 변경된 URL을 Fat URL이라고 합니다.

  • 위의 코드는 Amazon.com 이커머스 웹 사이트에서 Fat URL을 사용한 몇 가지 예시입니다.

  • 각각의 URL은 사용자별로 고유한 식별 번호(예제의 경우 002-1145265-8016838)가 추가되어 스토어를 탐색중인 사용자를 추적할 수 있게 돕습니다.

You can use fat URLs to tie the independent HTTP transactions with a web server into a single “session” or “visit.” The first time a user visits the web site, a unique ID is generated, it is added to the URL in a server-recognizable way, and the server redirects the client to this fat URL. Whenever the server gets a request for a fat URL, it can look up any incremental state associated with that user ID (shopping carts, profiles, etc.), and it rewrites all outgoing hyperlinks to make them fat, to maintain the user ID.

  • Fat URL은 웹 서버와의 독립적인 HTTP 트랜잭션을 하나의 "세션"이나 "방문"으로 결합할 때 사용할 수 있습니다.

  • 사용자가 처음 웹 사이트에 방문하면 고유 ID가 생성되어 서버가 인식할 수 있는 방식으로 URL에 추가됩니다.

  • 서버는 클라이언트를 해당 Fat URL로 리디렉션합니다.

  • 서버가 Fat URL에 대한 요청을 받을 때마다 사용자 ID와 연관된 모든 증가하는 상태 정보(장바구니, 프로필 등)를 확인합니다.

  • 그리고 연결된 하이퍼링크를 사용자 ID가 유지된 Fat URL로 만듭니다.

Fat URLs can be used to identify users as they browse a site. But this technology does have several serious problems. Some of these problems include:

  • Fat URL은 사용자가 사이트를 탐색하는 동안 사용자를 식별할 수 있게 합니다.

  • 하지만 이 기술은 몇 가지 심각한 문제를 가지고 있습니다.

  • 일부 문제들은 다음과 같습니다.

Ugly URLs

The fat URLs displayed in the browser are confusing for new users.

Ugly URLs

  • 브라우저에 나타나는 Fat URL은 새로운 사용자에게 혼란을 야기할 수 있습니다.

Can’t share URLs

The fat URLs contain state information about a particular user and session. If you mail that URL to someone else, you may inadvertently be sharing your accumulated personal information.

Can't share URLs

  • Fat URL은 특정 사용자와 세션에 대한 상태 정보를 포함하고 있습니다.

  • URL을 다른 사람에게 메일로 전송하는 경우 사용자의 축적된 개인 정보를 실수로 공유하게 될 수 있습니다.

Breaks caching

Generating user-specific versions of each URL means that there are no longer commonly accessed URLs to cache.

Breaks caching

  • 특정 사용자 버전의 URL을 생성하는 것은 더 이상 캐시에 일반적으로 접근 가능한 URL이 존재하지 않는다는 뜻입니다.

Extra server load

The server needs to rewrite HTML pages to fatten the URLs.

Extra server load

  • 서버는 Fat URL을 생성하기 위해 HTML 페이지를 재작성해야 합니다.

Escape hatches

It is too easy for a user to accidentally “escape” from the fat URL session by jumping to another site or by requesting a particular URL. Fat URLs work only if the user strictly follows the premodified links. If the user escapes, he may lose his progress (perhaps a filled shopping cart) and will have to start again.

Escape hatches

  • 사용자가 다른 사이트로 건너뛰거나 특정 URL로 요청을 전송함으로 인해 본의 아니게 Fat URL 세션에서 빠져나오기 쉽습니다.

  • Fat URL은 사용자가 사전에 변경된 링크를 엄격하게 따라 움직여야만 제대로 동작합니다.

  • 만약 사용자가 사이트를 빠져나간다면 진행 과정을 잃고(채워놓은 장바구니 등) 처음부터 다시 시작해야 할 수 있습니다.

Not persistent across sessions

All information is lost when the user logs out, unless he bookmarks the particular fat URL.

Not persistent accross sessions

  • 사용자가 특정 Fat URL을 북마크에 저장하지 않는 한 로그아웃 시 모든 정보가 유실됩니다.

✏️ 요약


Fat URLs

: 사용자마다 특별한 버전의 URL을 생성하여 사용자의 신원을 추적하는 기법

  • 사용자가 처음 사이트에 방문할 때 고유 ID 생성 -> URL에 추가 (Fat URL)
  • 서버가 Fat URL로 클라이언트를 리디렉션
  • Fat URL에 대한 요청을 받을 때마다 모든 상태 정보 확인
  • 연결된 하이퍼링크를 Fat URL로 변경하여 클릭 시 해당 Fat URL로 이동
  • 문제점
    • 새로운 사용자에게 혼란 야기
    • 사용자와 세션에 대한 개인정보가 유출될 위험
    • 캐시의 의미 상실
    • Fat URL을 생성하기 위해 HTML을 재작성하는 과정에서 서버 과부하 발생
    • 사이트를 빠져나가는 경우 Fat URL 세션을 빠져나오기 쉬움
    • 로그아웃 시 모든 정보 유실
profile
틈틈이 두 페이지씩 원서 읽기

0개의 댓글