KR20150110743A - 페이지 상태를 매핑하는 시스템 및 방법 - Google Patents

페이지 상태를 매핑하는 시스템 및 방법 Download PDF

Info

Publication number
KR20150110743A
KR20150110743A KR1020157022966A KR20157022966A KR20150110743A KR 20150110743 A KR20150110743 A KR 20150110743A KR 1020157022966 A KR1020157022966 A KR 1020157022966A KR 20157022966 A KR20157022966 A KR 20157022966A KR 20150110743 A KR20150110743 A KR 20150110743A
Authority
KR
South Korea
Prior art keywords
state
document
browser
url
appearance
Prior art date
Application number
KR1020157022966A
Other languages
English (en)
Other versions
KR101709882B1 (ko
Inventor
니킬 다타쿠마르 수크탄카르
케빈 구오
Original Assignee
이베이 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이베이 인크. filed Critical 이베이 인크.
Publication of KR20150110743A publication Critical patent/KR20150110743A/ko
Application granted granted Critical
Publication of KR101709882B1 publication Critical patent/KR101709882B1/ko

Links

Images

Classifications

    • G06F17/2247
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F17/30876

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

웹 애플리케이션으로부터 동적으로 생성된 단일 페이지를 디스플레이하는 클라이언트 애플리케이션은 단일의 페이지의 여러 상태(예를 들면, 웹 애플리케이션으로부터 동적으로 생성된 콘텐츠와의 사용자 상호작용에 기초하여 입력되는 여러 상태)에 매핑되는 일관되고 직관적인 URL을 디스플레이할 수 있다. 단일 페이지의 여러 상태는 단일 페이지에 대하여 사용자의 상호작용에 기초하여 대응하는 URL에 매핑될 수 있다. 이러한 URL은 단일 페이지를 각기 대응하는 여러 상태에서 다시 방문하는데 사용될 수 있다.

Description

페이지 상태를 매핑하는 시스템 및 방법{SYSTEMS AND METHODS TO MAP PAGE STATES}
관련 출원의 상호 참조
본 출원은 2013년 1월 25일 출원된 미국 가출원 제 61/756,864 호의 우선권과 2013년 3월 1일 출원된 미국 특허출원 제 13/782,840 호의 이득을 청구하며, 이들 출원은 본 출원에서 그 전체가 참조문헌으로 인용된다.
기술 분야
본 출원에서 개시된 주제는 전반적으로 데이터 처리에 관한 것이다. 특히, 본 개시는 URL(uniform resource locators)에 대한 페이지 상태의 매핑을 가능하게 하는 시스템 및 방법을 다룬다.
네트워크-액세스 가능한 리소스(예를 들면, 디바이스, 또는 디바이스에 저장된 데이터)는 URI(uniform resource identifier)에 의해 식별될 수 있다. URI의 예는 URL, URN(uniform resource name), 또는 이들의 임의의 적절한 조합을 포함한다. URI는 URI에 의해 식별되는 네트워크-액세스 가능한 리소스에 대응하는 영숫자 문자 열일 수 있거나 이를 포함할 수 있다.
웹 페이지는 URI에 의해 식별되는 문서 또는 프리젠테이션의 전부 또는 일부일 수 있다. 예를 들면, URL은 웹 페이지의 네트워크-기반 위치를 식별할 수 있다. 소프트웨어 애플리케이션(예를 들면, 인터넷 브라우저 애플리케이션)은 (예를 들면, 웹 서버 머신으로부터 웹 클라이언트 디바이스에 제공되는) 웹 페이지에 액세스(예를 들면, 요청, 판독, 검색, 또는 다운로드)하기 위해 웹 페이지의 URL을 사용할 수 있다. 일부 상황에서, 웹 애플리케이션은 웹 서버 머신에서 실행되며 하나 이상의 수신되는 사용자 입력에 기초하여 (예를 들면, 사용자 입력에 응답하여) 웹 페이지를 동적으로 생성한다.
일부 실시예는 예로서 예시되며 첨부 도면의 도면에서 한정하지 않고 예시된다.
도 1은 일부 예시적인 실시예에 따라서, 페이지 상태를 URL에 매핑하기에 적합한 네트워크 환경을 예시하는 네트워크 다이어그램이다.
도 2는 일부 예시적인 실시예에 따라서, 웹 서버 머신 및 디바이스의 컴포넌트를 예시하는 블록도이다.
도 3 내지 도 6은 일부 예시적인 실시예에 따라서, 페이지 상태를 URL에 매핑하는 방법을 수행할 때 웹 서버 머신 및 디바이스의 동작을 예시하고 설명하는 주석이 달린 플로우차트이다.
도 7 및 도 8은 일부 예시적인 실시예에 따라서, 페이지 상태를 URL에 매핑하는 방법을 수행할 때 웹 서버 머신의 동작을 예시하는 플로우차트이다.
도 9는 일부 예시적인 실시예에 따라서, URL에 매핑되는 페이지 상태를 이용하는 방법을 수행할 때 디바이스의 동작과 함께 웹 서버 머신의 동작을 예시하는 플로우차트이다.
도 10은 일부 예시적인 실시예에 따라서, 머신-판독가능한 매체로부터의 명령어를 판독하고 본 출원에서 논의되는 방법론 중 임의의 하나 이상을 수행할 수 있는 머신의 컴포넌트를 예시하는 블록도이다.
예시적인 방법 및 시스템은 페이지 상태를 URI(예를 들면, URL)에 매핑하는 것과 관련된다. 예들은 있을 수 있는 변형예의 표본일 뿐이다. 달리 명시적으로 언급하지 않는 한, 컴포넌트 및 기능은 선택 사양이며 합쳐지거나 세분화될 수 있으며, 동작은 순서가 변할 수 있거나 또는 합쳐지거나 세분화될 수 있다. 다음의 설명에서, 설명 목적으로, 많은 특정한 세부사항이 예시적인 실시예의 완전한 이해를 제공하기 위해 설명된다. 그러나, 본 기술에서 통상의 지식을 가진 자에게는 그러한 특정 세부사항이 없이도 본 발명의 주제가 실시될 수 있다는 것이 자명할 것이다.
다양한 예시적인 실시예에 따르면, 본 출원에서 논의되는 방법 및 시스템 중 한 가지 이상은 단일 페이지의 각종 상태(예를 들면, 단일-페이지 웹 애플리케이션에 의해 생성되고 제공되는 단일의 웹 페이지)를 여러 URL에 매핑함으로써 단일-페이지 웹 애플리케이션에서 일관적인 URL을 관리하는 방법을 제공한다. 네트워크-기반 상거래 시스템(예를 들면, 온라인 쇼핑 웹사이트)의 예시적인 맥락에서, 그러한 URL은 카테고리 URL(예를 들면, 판매 가능한 항목의 카테고리를 서술하는 웹 페이지를 명시하는 URL), 제품 URL(예를 들면, 복수의 항목이 견본이 되는 제품을 서술하는 웹 페이지를 명시하는 URL), 항목 URL(예를 들면, 판매 가능한 특정 항목을 서술하는 웹 페이지를 명시하는 URL), 또는 이들의 임의의 적절한 조합을 포함할 수 있다.
본 명세서에서 논의되는 방법 또는 시스템의 예시적인 실시예를 이용하면, 그러한 웹 애플리케이션으로부터 단일의 페이지를 디스플레이하는 클라이언트 애플리케이션은 단일의 페이지의 여러 상태(예를 들면, 웹 애플리케이션에 의해 단일의 페이지 내에서 제공되는 동적으로 생성된 콘텐츠와의 하나 이상의 사용자 상호작용에 기초하여 입력되는 상태)에 매핑되는 일관되고 직관적인 URL을 디스플레이할 수 있다. 단일 페이지의 여러 상태는 단일 페이지에 대하여 하나 이상의 사용자 상호작용에 기초하여 대응하는 URL에 매핑될 수 있다. 이러한 URL은 단일 페이지를 그러한 URL에 각기 대응하는 여러 상태에서 다시 방문하는데 사용될 수 있다. 이러한 접근 방법은 해시 플래그먼트(hash fragments)(예를 들면, 해시 태그)를 사용하여 단일 페이지의 여러 상태를 표시하는 (예를 들면, 브라우저에서 동일 페이지 URL을 보여주되, 단일 페이지의 각 상태마다 상이한 해시 플래그먼트를 사용하는) 방법과 대조적일 수 있다.
일부 웹 애플리케이션에 따르면, 사용자가 URL을 브라우저에(예를 들면, 브라우저 애플리케이션의 사용자 인터페이스에) 타이핑할 때, 브라우저는 웹 서버(예를 들면, 웹 서버 머신)에게 URL 요청을 하고(예를 들면, 호출하고), 웹 서버는 브라우저가 단일 페이지(예를 들면, 단일의 웹 페이지)로서 사용자에게 제시하는(예를 들면, 사용자의 클라이언트 디바이스의 스크린 상에 디스플레이되는) 동적 콘텐츠를 제공한다(예를 들면, 반환한다). 그런 다음, 사용자가 제시된 단일 페이지 상에서 이러한 동적 콘텐츠 중 어떤 것(예를 들면, 링크, 버튼, 또는 핫스팟)과 상호작용할 때, 상호작용은, 예를 들면, 다음과 같이 행함으로써 처리될 수 있다.
1. 웹 서버에게 다른 하나의 URL 요청을 하게 함 - 이것은 웹 서버에게 페이지의 전체 콘텐츠(예를 들면, 동적 콘텐츠)를 재전송하라고 전하여 전체 페이지를 리프레쉬(예를 들면, 리페인팅(repainting))하는 것임 -, 또는
2. 웹 서버에게 비동기 자바스크립트 XML(JavaScript and XML (AJAX), 여기서 XML은 확장 가능한 마크업 언어(extensible Markup Language)를 말함)를 요청(예를 들면, AJAX를 호출)하고 프론트 엔드 상의 페이지의 콘텐츠를 모두 (예를 들면, 클라이언트 측의 브라우저로) 로딩하고, 그래서 사용자가 페이지를 리프레쉬하거나 떠나지 않고 동적 콘텐츠 중 어느 것(예를 들면, 링크, 버튼, 또는 핫스팟)과 상호작용할 수 있게 해줌 - 이때 필요할 때만 부가적인 데이터(예를 들면, 부가적인 동적 콘텐츠)를 위한 부가적인 요청(예를 들면, 호출)이 웹 서버에게 이루어짐).
옵션 2는 기분 좋은 사용자 경험을 전달하는 그 능력 때문에 때로는 단일-페이지 웹 애플리케이션을 구축하는데 사용되기도 한다. 그러나, 사용자가 단일 페이지(예를 들면, 단일 웹 페이지)와 상호작용하고 웹 애플리케이션의 여러 특징을 내비게이트(navigate)할 때, 단일 페이지의 상태가 변한다. 예를 들면, 페이지는 상이한 외관을 가질 수 있다(예를 들면, 동적 콘텐츠의 일부를 상이하게 제시하거나 상이한 콘텐츠를 모두 제시할 수 있다). 그러나, 해시 플래그먼트(예를 들면, 해시 태그)가 페이지의 URL에 첨부될지라도, 페이지의 URL은 동일하게 유지될 수 있는데, 이것은 페이지의 URL이 직관적으로 보이지 않게 만들 수 있고, 사용자가 읽기 어렵고, 그리고 사용자가 사용하기 어렵게 만들 수 있다(예를 들면, 브라우저의 "백(back)" 버튼 또는 "포워드(forward)" 버튼을 사용하여 동적으로 생성된 콘텐츠에 액세스하거나, 또는 복사하고 갖다 붙이며 그래서 다른 사용자는 페이지를 그의 현재 상태에서 볼 수 있다).
이러한 맥락에서, 본 출원에서 논의되는 방법 및 시스템 중 한 가지 이상은 다음과 같은 장점 중 한 가지 이상을 제공할 수 있다. 즉,
1. 웹 애플리케이션(예를 들면, 모바일 디바이스용 모바일 웹 사이트)이 단일 페이지로서 설계될 수 있을지라도, 사용자는 단일 페이지의 여러 상태(예를 들면, 영역, 구성, 또는 이력) 마다 상이한 URL을 (예를 들면, 사용자의 브라우저에서) 본다. 이렇게 여러 URL은 일관된 외관(예를 들면, 직관적인 모양 또는 쉽게 이해할 수 있는 신택스)을 갖도록 관리(예를 들면, 생성, 매핑, 또는 둘 다)될 수 있다.
2. 사용자는 사용자의 행위 이력 내에서 뒤로 가고 앞으로 갈 수 (예를 들면, 이전에 방문했던 URL의 이력 내에서 앞 뒤로 갈 수) 있으며 단일 페이지의 이전에 제시된 상태를 통해 내비게이트할 수 있다.
3. 일부 예시적인 실시예에서, 사용자에 의한 단일 페이지와의 상호작용은 상태(예를 들면, 새로운 상태)를 발생하며, 그 상태는 유효 URL(예를 들면, 영숫자 문자열을 포함하는 URL)에 매핑될 수 있다.
4. 일부 예시적인 실시예에서, 사용자에 의한 단일 페이지와의 상호작용은 브라우저로 하여금 단일 페이지를 다시 로딩하지 않고 (예를 들면, 단일 페이지의 대응하는 상태에 매핑된) 업데이트된 URL을 디스플레이하게 한다.
5. 일부 예시적인 실시예에서, 사용자는 브라우저를 사용하여 수동으로 단일 페이지의 리프레쉬를 요청할 수 있고, 단일 페이지는 리프레쉬에 앞서 디스플레이되었던 동일한 상태로 다시 로딩(예를 들면, 리페인트 또는 리프레쉬)될 것이다.
6. 일부 예시적인 실시예에서, 페이지의 상태는 페이지의 특정 뷰에 대응하고, 그 상태에 대응하는 URL은 페이지를 그 특정 뷰에 매핑될 수 있다.
얻을 수 있는 부가적인 장점은 예를 들면 다음과 같다.
1. 다양한 페이지 상태에 대한 URL은 검색 엔진 최적화(search engine optimization, SEO) 목적을 위한 검색 엔진에 의해 쉽게 색인될 수 있다(예를 들면, SEO-친화적 URLs).
2. 사용자는 자신의 브라우저로부터 페이지의 특정 상태에 대해 직관적인 URL을 쉽게 복사할 수 있고 하나 이상의 소셜 미디어 사이트에서 또는 다른 어느 곳에서도 그 URL을 공유할 수 있다. 다른 누군가가 그 URL에 클릭하면, 그들은 사용자에 의해 공유되었던 동일 페이지를 동일한 특정 상태에서 보게 될 것이다.
3. 얼마나 많이 사용자가 페이지의 특정 상태를 떠나고 다시 방문하는 회수에 무관하게, 그저 한번 (예를 들면, 처음에는 한 조각의 동적 콘텐츠가 필요함) 로딩되는 동적 콘텐츠의 결과로서 사용자 경험이 강화되거나 개선될 수 있다.
4. 일부 예시적인 실시예에서, 웹 애플리케이션은 예를 들면, 특정한 상태(예를 들면, 사용자 그룹을 위해 미리 맞추어 구성된 상태)를 명시하는 매핑된 URL을 제공함으로써 유사한 콘텐츠에 관심을 가진 사용자 그룹에 맞춘(예를 들면, 개인화된) 고객 맞춤 페이지를 제공할 수 있다.
다양한 예시적인 실시예에 따르면, 웹 서버 머신은 백-엔드 모듈(예를 들면, URL 검증 모듈)을 갖는 웹 애플리케이션을 실행하여 브라우저-실행 가능한 프론트-엔드 모듈(예를 들면, URL 관리 모듈)을 갖는 웹 클라이언트 디바이스를 제공하도록 구성될 수 있다. 예를 들면, 일련의 하나 이상의 재현 상태 전송(representational state transfer, REST) 서비스는 서버 측에서 (예를 들면, 웹 애플리케이션의 URL 검증 모듈에 의해 구성된 것으로서, 웹 서버 머신에 의해) 실행되어 (예를 들면, URL 검증 모듈의 실행을 통해) 임의의 URL 경로를 검증하도록 실행될 수 있고, 반면에 일련의 하나 이상의 자바스크립트 프로그램은 클라이언트 측에서 (예를 들면, URL 관리 모듈에 의해 구성된 것으로서, 클라이언트 디바이스에 의해 브라우저 측에서) 실행되어 (예를 들면, URL 관리 모듈의 실행에 의해) 단일-페이지 웹 애플리케이션의 URL 및 상태를 관리한다.
도 1은 일부 예시적인 실시예에 따라서, 페이지 상태를 URL에 매핑하기에 적합한 네트워크 환경(100)을 예시하는 네트워크 다이어그램이다. 네트워크 환경(100)은 웹 서버 머신(110), 데이터베이스(115), 및 디바이스(130 및 150)를 포함하며, 이들은 모두 네트워크(190)를 통해 서로 통신으로 결합된다. 웹 서버 머신(110) 및 디바이스(130 및 150)는 각기 도 10에 대해 아래에서 기술되는 바와 같이, 전체적으로 또는 부분적으로 컴퓨터 시스템에서 구현될 수 있다.
웹 서버 머신(110)은 본 출원에서 개시된 임의의 하나 이상의 방법론을 수행하도록 (예를 들면, 특수 목적 소프트웨어에 의해) 구성될 수 있다. 웹 서버 머신(110)은 데이터베이스(115)와 함께 또는 데이터베이스(115) 없이 하나 이상의 웹 서비스를 제공하는 네트워크-기반 시스템(105)의 전부 또는 일부를 구성할 수 있다.
도 1에는 또한 사용자(132 및 152)가 도시된다. 사용자(132 및 152) 중 한 사용자 또는 두 사용자는 인간 사용자(예를 들면, 사람), 머신 사용자(예를 들면, 디바이스(130)와 상호작용하도록 소프트웨어 프로그램에 의해 구성되는 컴퓨터), 또는 이들의 임의의 적절한 조합(예를 들면, 머신의 보조를 받는 사람 또는 사람에게 감독 받는 머신)일 수 있다. 사용자(132)는 네트워크 환경(100)의 일부는 아니고, 디바이스(130)와 연관되며 디바이스(130)의 사용자일 수 있다. 예를 들면, 디바이스(130)는 사용자(132)에게 속한 데스크톱 컴퓨터, 차량 컴퓨터, 태블릿 컴퓨터, 내비게이션 디바이스, 휴대용 미디어 디바이스, 또는 스마트 폰일 수 있다. 마찬가지로, 사용자(152)는 네트워크 환경(100)의 일부는 아니고, 디바이스(150)와 연관된다. 예로서, 디바이스(150)는 사용자(152)에게 속한 데스크톱 컴퓨터, 차량 컴퓨터, 태블릿 컴퓨터, 내비게이션 디바이스, 휴대용 미디어 디바이스, 또는 스마트 폰일 수 있다.
따라서, (네트워크-기반 시스템(105)의 일부로서) 웹 서버 머신(110)은 하나 이상의 웹 서비스를 하나 이상의 웹 클라이언트(예를 들면, 디바이스(130 및 150))에 제공할 수 있다. 디바이스(130 및 150) 중 하나 또는 둘 다는 사용자(예를 들면, 사용자(132 및 152))가 액세스하고 웹 서버 머신(110)에 의해 제공되는 하나 이상의 웹 서비스를 사용할 수 있는 모바일 디바이스(예를 들면, 스마트폰, 차량 컴퓨터, 또는 태블릿 컴퓨터)일 수 있다.
예를 들면, 웹 서버 머신(110)은 콘텐츠의 페이지(예를 들면, 동적으로 생성된 웹 콘텐츠를 포함하며 그 웹 콘텐츠를 제시하는 단일의 웹 페이지)를 디바이스(130)로 제공(또는 발송)한다. 디바이스(130)는 사용자(132)가 제공된 콘텐츠의 페이지와 상호작용하도록 (링크를 터치하여 부가 콘텐츠를 요청하거나, 제시된 콘텐츠 내 핫스팟을 터치하고 보유하여 부가 콘텐츠를 갖는 팝업 윈도우를 열거나, 제시된 콘텐츠 위로 마우스를 움직여서 통지를 트리거링하거나, 콘텐츠의 프리젠테이션을 클릭하고 드래그함으로써 콘텐츠의 프리젠테이션을 조작하거나, 또는 이들의 임의의 적절한 조합) 해주는 애플리케이션(예를 들면, 브라우저 애플리케이션)을 실행할 수 있다.
도 1에 도시된 머신, 데이터베이스, 또는 디바이스 중 임의의 것은 특수 목적 컴퓨터가 되어서 본 출원에서 기술되는 머신, 데이터베이스, 또는 디바이스의 기능을 수행하도록 소프트웨어에 의해 수정되는 (예를 들면, 구성되거나 프로그램되는) 범용 컴퓨터에서 구현될 수 있다. 예를 들면, 본 출원에서 개시되는 방법론 중 임의의 한 가지 이상을 구현할 수 있는 컴퓨터 시스템은 도 10에 대해 아래에서 논의된다. 본 출원에서 사용되는 바와 같은, "데이터베이스"는 데이터 저장 리소스이며 텍스트 파일, 테이블, 스프레드시트, 관계형 데이터베이스 (예를 들면, 객체-관계형 데이터베이스), 트리플 스토어(a triple store), 계층적 데이터 스토어, 또는 이들의 임의의 적절한 조합으로서 구성된 데이터를 저장할 수 있다. 더욱이, 도 1에 예시된 머신, 데이터베이스, 또는 디바이스 중 임의의 두 가지 이상은 단일의 머신으로 조합될 수 있으며, 임의의 단일 머신, 데이터베이스, 또는 디바이스에 필요한 본 출원에서 기술되는 기능은 복수의 머신, 데이터베이스, 또는 디바이스 사이에 세분화될 수 있다.
네트워크(190)는 머신, 데이터베이스, 및 디바이스(예를 들면, 웹 서버 머신(110) 및 디바이스(130)) 사이에서 통신을 가능하게 해주는 임의의 네트워크일 수 있다. 따라서, 네트워크(190)는 유선 네트워크, 무선 네트워크(예를 들면, 모바일 또는 셀룰러 네트워크), 또는 이들의 임의의 적절한 조합일 수 있다. 네트워크(190)는 사설 네트워크, 공중 네트워크(예를 들면, 인터넷), 또는 이들의 임의의 적절한 조합을 구성하는 하나 이상의 부분일 수 있다.
도 2는 일부 예시적인 실시예에 따라서, 웹 서버 머신(110) 및 디바이스(130)의 컴포넌트를 예시하는 블록도이다. 웹 서버 머신(110)은 웹 애플리케이션(210)(예를 들면, 웹 서버 머신(110)에서 실행하는 웹 서비스 애플리케이션), 검증 모듈(220)(예를 들면, 웹 서버 머신(110)에서 실행하는 다른 웹 서비스 애플리케이션), 및 프로비전 모듈(230)(예를 들면, 웹 서버 머신(110)에서 실행하는 또 다른 웹 서비스 애플리케이션)을 포함하는 것으로 도시되며, 이들은 모두 (예를 들면, 버스, 공유 메모리, 또는 스위치를 통해) 서로 통신하도록 구성된다.
웹 애플리케이션(210)은 웹 서비스를 하나 이상의 디바이스(예를 들면, 디바이스(130))에 제공하는 애플리케이션이며, 웹 애플리케이션(210)은 모바일 애플리케이션(예를 들면, 웹 서비스를 하나 이상의 모바일 디바이스에 제공하는 애플리케이션)일 수 있다. 일부 예시적인 실시예에 따르면, 검증 모듈(220)은 하나 이상의 URL을 (예를 들면, 하나 이상의 디바이스에 제공되는 웹 서비스로서) 검증하도록 구성된 URL 검증 모듈이다. 프로비전 모듈(230)은 소프트웨어(예를 들면, 자바스크립트 프로그램 또는 자바 애플릿과 같은 브라우저를 실행할 수 있는 소프트웨어)를 제공하도록 구성된다.
디바이스(130)는 관리 모듈(260)(예를 들면, 자바스크립트 프로그램 또는 자바 애플릿과 같은 브라우저-실행 가능한 소프트웨어)를 포함하는 브라우저(250)(예를 들면, 디바이스(130)에서 실행하는 브라우저 애플리케이션)을 포함하는 것으로 도시된다. 웹 서버 머신(110) 내부에서, 프로비전 모듈(230)은 다운로드 모듈(예를 들면, 소프트웨어, 예를 들면, 관리 모듈(260)을 하나 이상의 디바이스에 제공하는 애플리케이션)로서 구성될 수 있다.
본 출원에서 개시되는 모듈 또는 애플리케이션 중 임의의 한 가지 이상은 하드웨어(예를 들면, 머신의 프로세서) 또는 하드웨어와 소프트웨어의 조합을 이용하여 구현될 수 있다. 예를 들면, 본 출원에서 개시되는 임의의 모듈 또는 애플리케이션은 본 출원에서 개시되는 그 모듈의 동작을 수행하는 프로세서를 구성할 수 있다. 더욱이, 이들 모듈 또는 애플리케이션 중 임의의 둘 이상은 단일 모듈로 조합될 수 있으며, 본 출원에서 기술되는 단일 모듈의 기능은 복수의 모듈 또는 애플리케이션 사이에 세분화될 수 있다. 뿐만 아니라, 다양한 예시적인 실시예에 따르면, 단일 머신, 데이터베이스, 또는 디바이스 내부에서 구현되는 것으로서 본 출원에서 기술되는 모듈 및 애플리케이션은 복수의 머신, 데이터베이스, 또는 디바이스 전체에 분포되어 있을 수 있다.
도 3 내지 도 6은 일부 예시적인 실시예에 따라서, 페이지 상태를 URL에 매핑하는 방법(300)을 수행할 때 웹 서버 머신(110) 및 디바이스(130)의 동작을 예시하고 기술하는 주석이 달린 플로우차트이다. 방법(300)에서 동작은 도 2에 대해 앞에서 기술된 모듈 중 한 가지 이상을 이용하여, 웹 서버 머신(110) 또는 디바이스(130)에 의해 각기 수행될 수 있다.
도 3에 도시된 바와 같이, 동작(301)에서, 디바이스(130)는 웹 애플리케이션(210)에 대응할 수 있는 URL을 연다. 예를 들면, 디바이스(130)는 웹 서버 머신(110)에서 실행하는 웹 애플리케이션(210)으로부터 웹 페이지(예를 들면, 단일-페이지 웹 페이지)를 요청하도록 구성될 수 있는 브라우저(250)를 실행할 수 있다. 이러한 요청은 브라우저(250)와 상호작용할 때 사용자(132)에 의해 시작될 수 있다. 도 3에 도시된 예시적인 URL("http://t.d.eom/x/z")은 프로토콜 이름("http"), 도메인 이름("d.com"), 서브도메인 이름("t"), 및 폴더 경로("/x/z")를 포함한다. 도시된 예시적인 URL에서, 물음표 표시("?")로 시작하고 앰퍼샌드(ampersand) ("&")에 의해 분리되는 영숫자 열인 URL 파라미터가 없다. 도시된 예시적인 URL에서, 숫자 기호("#", 파운드 기호 또는 해시라고도 지칭됨)로 시작하는 영숫자 열인 플래그먼트(예를 들면, 해시 플래그먼트, 해시 태그, 또는 지명된 앵커)가 또한 없다.
동작(302)에서, 웹 애플리케이션(210)은 콘텐츠(예를 들면, 동적으로 생성된 웹 콘텐츠)를 디바이스(130)에 제공함으로써 응답한다. 예를 들면, 제공되는 콘텐츠는 하이퍼텍스트 마크업 언어(hypertext markup language, HTML) 데이터, 캐스케이딩 스타일 시트(cascading style sheet, CSS) 데이터, 브라우저-실행 가능한 소프트웨어(예를 들면, 자바스크립트 파일), 또는 이들의 임의의 적절한 조합을 포함할 수 있다. 일부 예시적인 실시예에서, 제공되는 콘텐츠는 (디바이스(130) 상에서 브라우저(250)에서 실행을 위한 브라우저-실행가능한 소프트웨어로서) 관리 모듈을 포함할 수 있다. 도 3에 도시된 바와 같이, 제공되는 콘텐츠는 URL에서 명시된 임의의 폴더 경로(예를 들면, "/x/z")와 관계없을 수 있다. 즉, 제공되는 콘텐츠는 오로지 프로토콜 이름 및 도메인 이름에만 종속적일 수 있거나, 또는 대안의 예시적인 실시예에서는 오로지 프로토콜 이름, 서브도메인 이름, 및 도메인 이름에만 종속적일 수 있다.
동작(303)에서, 검증 모듈(220)은 URL에서 명시된 폴더 경로 중 일부 또는 모두를 검증한다(예를 들면, "x" 및 'z"를 검증한다). 도 3에 도시된 것처럼, 검증 모듈(220)은 REST 서비스(예를 들면, "RESTful" 서비스)로서 구현될 수 있는 URL 검증 서비스의 전부 또는 일부를 형성할 수 있다. URL의 폴더 경로("/x/z", 또는 "x" 및 "z")는 한 상태에 매핑되며, 이 상태는 데이터베이스(115)에 저장될 수 있다. 그러므로 검증 모듈(220)은 데이터베이스(115)에 액세스하여 폴더 경로의 일부 또는 전부를 검증할 수 있다. 이러한 검증은 동작(301)에서 열리는 (예를 들면, 페이지 로딩) URL에 대한 응답으로 수행될 수 있다. 도 3에 도시된 것처럼, 데이터베이스(115)는 폴더 경로("/x/z")와 관련된 정보를 저장할 수 있으며, 이렇게 관련된 정보는 검증 모듈(220)에 의해 (예를 들면, 요청된 웹 페이지의 초기 상태로서) 검색될 수 있다. 다양한 예시적인 실시예에 따르면, 동작(303)은 URL이 디바이스(130)에 의해 처음 열릴 때 (예를 들면, 초기 페이지 로딩), URL이 디바이스(130)에 의해 재 방문될 때(예를 들면, 후속 페이지 로딩), 또는 두 가지 경우 모두일 때 수행될 수 있다.
동작(304)에서, 관리 모듈(260)은 (예를 들면, 브라우저(250)를 통해) 검증 모듈(220)로부터 폴더 경로("/x/z" or "x") 중 일부 또는 전부의 검증을 수신할 수 있으며, 관리 모듈(260)은 (예를 들면, 브라우저(250)를 통해) 검증 모듈(220)로부터 폴더 경로("/x/z")에 관련된 정보를 수신할 수 있다. 이것을 기초로 하여, 관리 모듈(260)은 디바이스(130)가 (예를 들면, 브라우저(250)를 통해) 요청된 웹 페이지를 로딩하여 그 웹 페이지를 디바이스(130)의 스크린(131) 상에 디스플레이하게 할 수 있다. 요청된 웹 페이지는 (예를 들면, URL의 폴더 경로에 대응하는 것으로서 데이터베이스(115)에 저장된) 관리 모듈(260)에 의해 수신되는 관련 정보에 기초하여, 제 1 상태(예를 들면, 초기 상태 또는 "상태 1")에서 로딩될 수 있다.
동작(305)에서, 사용자(132)는 로딩된 웹 페이지 및 그의 콘텐츠와 상호작용한다(예를 들면, 링크, 버튼, 또는 핫스팟을 작동시킨다). 예를 들면, 사용자(132)는 웹 애플리케이션(210)에 대응하는 다른 URL(예를 들면, "http://td.eom/y/k" 또는 그냥 "/y/k")을 참조하는 링크를 클릭할 수 있다. 도 3에 도시된 것처럼, 이러한 추가 URL은 웹 페이지의 제 2 상태(예를 들면, 후속 상태 또는 "상태 2")에 매핑될 수 있다. 이러한 제 2 상태는 데이터베이스(115)에 저장될 수 있다. 사용자(132)가 이러한 추가 URL을 참조하는 콘텐츠를 활성화할 때, 관리 모듈(260)은 이것을 (예를 들면, 관리 모듈(260)에게 통지하는 브라우저(250)로부터) 검출한다. 일부 예시적인 실시예에서, 관리 모듈(260)은 검증 모듈(220)로부터 이런 추가 URL(예를 들면, 폴더 경로 "/y/k")의 일부 또는 전부의 검증을 요청하며, 검증 모듈(220)은 요청된 검증뿐만 아니라 웹 페이지의 제 2 상태에 관련된 정보로 응답할 수 있다.
동작(306)에서, 관리 모듈(260)은 웹 페이지의 제 2 상태에 대응하는 추가 URL(예를 들면, 폴더 경로 "/y/k")의 일부 또는 전부의 검증을 수신할 수 있으며, 이들은 제 2 상태 또는 그의 대응하는 폴더 경로("/y/k")에 관련된 정보를 수신한다. 이것에 기초하여, 관리 모듈(260)은 디바이스(130)로 하여금 (예를 들면, 브라우저(250)를 통해) 웹 페이지를 그의 제 2 상태로 업데이트하게 하거나 하도록 할 수 있다. 이것은 웹 페이지를 다시 로딩하지 않고도 수행될 수 있다. 도 3에 도시된 것처럼, 사용자(132)는 브라우저(250) 내에서 하나 이상의 페이지 내비게이션 컨트롤(예를 들면, "백" 버튼, "포워드" 버튼, 또는 둘 다)을 이용함으로써 제 1 상태와 제 2 상태 사이에서 전환할 수 있다.
도 3에 도시된 바와 같이, 만일 브라우저(250)가 웹 페이지의 제 2 상태(예를 들면, 폴더 경로("/y/k")에 매핑되는 "상태 2")를 디스플레이하고 있고, 그리고 사용자(132)가 브라우저(250)로 하여금 그 웹 페이지를 리프레쉬할 것을 요청하면, 방법(300)은 동작(301)으로 되돌아가며, 이 동작에서 그 웹 페이지의 URL이 열리게 된다. 그러나, 이때 URL은 그 웹 페이지의 제 2 상태에 대응하는 폴더 경로("/y/k", 도시되지 않음)를 포함한다.
도 4에 도시된 바와 같이, 만일 브라우저(250)가 웹 페이지의 제 1 상태(예를 들면, 폴더 경로("/x/z")에 매핑되는 "상태 1")를 디스플레이하고 있고, 그리고 사용자(132)가 브라우저(250)로 하여금 그 웹 페이지를 리프레쉬할 것을 요청하면, 방법(300)은 동작(301)으로 되돌아가며, 이 동작에서 그 웹 페이지의 URL이 열리게 된다. 도 4에서 도시된 것처럼, URL은 그 웹 페이지의 제 1 상태에 대응하는 폴더 경로("/x/z")를 포함한다. 그렇지 않으면, 도 4는 도 3에 도시된 예시적인 실시예와 유사한 예시적인 실시예를 도시한다.
도 5에 도시된 바와 같이, 브라우저(250)는 (예를 들면, 데이터베이스(115)에 의해 저장되고 검증 모듈(220)에 의해 제공되는) 웹 페이지의 다양한 상태에 대응하는 정보를 (예를 들면, 일시적으로 또는 영구적으로) 저장하는 브라우저 캐시(510)를 활용할 수 있다. 브라우저 캐시(510)는 디바이스(130)에 의해 쉽게 액세스 가능한 데이터의 로컬 저장소(예를 들면, 메모리) 또는 다른 보관소의 전부 또는 일부를 형성할 수 있다. 브라우저 캐시(510)를 활용하는 예시적인 실시예에서, 방법(300)은 동작(501, 502, 및 503) 중 한 가지 이상의 동작을 포함한다.
동작(501)에서, 만일 사용자(132)가 URL "http://t.d.eom/x/z"을 열라고 요청하면(예를 들면, 페이지 로딩 요청), 관리 모듈(260)은 URL의 폴더 경로("/x/z")와 관련된 임의의 캐시되어 있는 데이터에 대해 브라우저 캐시(510)를 체크할 수 있다. 예를 들면, 브라우저 캐시(510)는 웹 페이지의 제 1 상태에 관련된 정보(예를 들면, 웹 페이지의 제 1 상태를 정의하는 정보)를 저장할 수 있으며, 관리 모듈(260)은 그러한 관련된 정보에 대해 브라우저 캐시(510)를 체크할 수 있다. 만일 브라우저 캐시(510)가 그러한 캐시되어 있는 데이터를 갖고 있으면, 캐시되어 있는 데이터는 브라우저(250)에 의해 디바이스(130)가 (예를 들면, 브라우저(250)에 의해) 폴더 경로("/x/z")에 대응하는 제 1 상태의 웹 페이지를 로딩하게 하는데 사용된다. 이러한 상황에서, 동작(502 및 503)은 생략될 수 있다.
동작(502)에서, 만일 브라우저 캐시(510)가 폴더 경로("/x/z")와 관련된 데이터를 갖고 있지 않으면, 관리 모듈(260)은 검증 모듈(220)가 폴더 경로("/x/z")의 검증을 제공할 것을 요청한다. 검증 모듈(220)에 의한 이러한 요청 및 그의 대응하는 응답은 동작(303)에 대해 앞에서 기술된 것과 유사한 방식으로 수행될 수 있다.
동작(503)에서, 관리 모듈(260)은 (예를 들면, 브라우저(250)를 통해) 검증 모듈(220)로부터 폴더 경로("/x/z")와 관련된 정보를 수신할 수 있으며, 관리 모듈(260)은 이렇게 수신된 정보를 브라우저 캐시(510)에 저장(예를 들면, 캐싱) 할 수 있다. 그래서, 이러한 관련된 데이터가 입수될 수 있고 브라우저(250)에게 쉽게 액세스 가능하여 URL "http://t.d.eom/x/z"을 열라는 추가 요청에 응답할 수 있다. 앞에서 설명한 것처럼, 동작(304)에서, 관리 모듈(260)은 (예를 들면, 브라우저(250)를 통해) 폴더 경로("/x/z")의 일부 또는 전부의 검증을 수신할 수 있으며, 이러한 검증에 기초하여, 관리 모듈(260)은 디바이스(130)가 (예를 들면, 브라우저(250)를 통해) 폴더 경로("/x/z")에 대응하는 제 1 상태의 웹 페이지를 로딩하게 또는 로딩하도록 할 수 있다. 다양한 예시적인 실시예에 따르면, 동작(503)은 동작(304)에 앞서, 동작(304)과 함께, 동작(304)의 일부로서, 또는 동작(304) 이후에 수행될 수 있다.
도 6에 도시된 바와 같이, 검증 모듈(220)이 폴더 경로("/x/z")의 어떠한 검증도 제공하지 않는 상황 또는 폴더 경로(예를 들면, "x" 또는 "z")의 일부 또는 전부가 무효하다고 표시하는 응답을 제공하는 상황에서, 방법(300)은 그러한 오류 사례를 다루기 위해 동작(604 및 605) 중 한 가지 이상의 동작을 포함할 수 있다. 도 6에 도시된 예에서, 폴더 경로("/x/z")는 부분적으로 유효하지 않다. 구체적으로, 이 예에서, "z"는 유효하고 반면 'z"는 그렇지 않다. 예를 들면, "x"는 (폴더 경로의 일부를 지정하는 영숫자 열로서) 아직 소멸되지 않을 수 있고, 반면 "z"는 (폴더 경로의 일부를 지정하는 영숫자 열로서) 소멸될 수 있다.
동작(604)에서, 관리 모듈(260)은 (예를 들면, 브라우저(250)를 통해) 검증 모듈(220)로부터 폴더 경로의 유효한 부분(예를 들면, "x")에만 관련된 정보를 수신할 수 있다. 이에 기초하여, 동작(605)에서, 관리 모듈(260)은 디바이스(130)가 (예를 들면, 브라우저(250)를 통해) (예를 들면, 동작(604)에서 수신된 정보에 기초하여) 폴더 경로의 유효 부분에 대응하는 상태의 요청된 웹 페이지를 로딩하게 또는 로딩하도록 할 수 있다. 일부 예시적인 실시예에서, 이러한 상태는 웹 페이지의 제 1 상태(예를 들면, 초기 상태 또는 "상태 1")와 같다.
도 7 및 도 8은 일부 예시적인 실시예에 따라서, 페이지 상태를 URL에 매핑하는 방법(700)을 수행할 때 웹 서버 머신(110)의 동작을 예시하는 플로우차트이다. 방법(700)의 동작은 도 2에 대하여 앞에서 기술된 모듈 및 애플리케이션을 이용하여 수행될 수 있다. 도 7에 도시된 바와 같이, 방법(700)은 동작(710, 720, 730, 및 740)을 포함한다.
동작(710)에서, 웹 서버 머신(110)의 웹 애플리케이션(210)은 브라우저(250)에 디스플레이하기 위한 (예를 들면, 디바이스(130)의 스크린(131)을 통해 디스플레이하기 위한) 문서(예를 들면, 동적으로 생성된 콘텐츠를 갖는 웹 페이지)를 찾을 수 있는 제 1 URL (예를 들면, 제 1 폴더 경로 "/x/z"를 갖는, http://t.d.com/x/z)을 참조하라는 요청(예를 들면, 페이지 요청)을 수신한다. 이러한 제 1 URL은 문서가 제 1 외관(예를 들면, 콘텐츠의 제 1 배열, 일련의 제 1 콘텐츠 요소, 또는 두 가지 다)를 갖는 제 1 상태에 대응할 수 있다. 예를 들면, 웹 애플리케이션(210)은 동적으로 생성된 콘텐츠의 단일-페이지 웹 페이지를 찾는데 이용할 수 있는 제 1 URL을 포함하는 요청을 수신할 수 있다.
동작(720)에서, 웹 애플리케이션(210)은 요청된 문서를 (예를 들면, 제 1 외관을 갖는) 제 1 상태에서 브라우저(250)에 제공한다. 요청된 문서는 동작(710)에서 수신된 요청에 대한 응답으로 제공될 수 있으며, 요청된 문서는 (예를 들면, 문서의 제 1 외관에 대응하는) 문서의 제 1 상태에 대응할 수 있는 제 1 URL에 기초하여 제공될 수 있다. 문서의 제 1 상태에서, 문서는 문서가 제 2 외관(예를 들면, 콘텐츠의 제 2 배열, 일련의 제 2 콘텐츠 요소, 또는 두 가지 다)을 갖는 제 2 상태를 불러오는데 사용 가능한 컨트롤(예를 들면, 링크, 버튼, 핫스팟 또는 이들의 임의의 조합)을 포함할 수 있다. 이러한 컨트롤은 브라우저(250)에서 디스플레이하기 위한 문서를 찾을 수 있는 제 2 URL(예를 들면, 제 2 폴더 경로 "/y/k"를 갖는 http://t.d.com/y/k)를 참조할 수 있다(예를 들면, 제 2 폴더 경로로의 참조를 포함할 수 있다).
동작(730)에서, 웹 서버 머신(110)의 검증 모듈(220)은 컨트롤(예를 들면, 링크, 버튼, 핫스팟 또는 이들의 임의의 조합)이 사용된 것을 검출하여 (예를 들면, 문서의 제 2 외관을 갖는) 문서의 제 2 상태를 불러온다. 앞에서 주목된 것처럼, 컨트롤은 제 2 URL을 (예를 들면, 포함함으로써) 참조할 수 있으며, 검증 모듈(220)은 브라우저(250)에 디스플레이하기 위한 문서를 (예를 들면, 제 2 외관을 갖는) 제 2 상태에서 제공하라는 요청을 검출함으로써 컨트롤의 사용을 검출할 수 있다. 예를 들면, 검증 모듈(220)은 브라우저(250)로부터 (예를 들면, 관리 모듈(260)과 같은 브라우저-실행 가능한 소프트웨어로부터) 그러한 요청을 직접 수신할 수 있다. 다른 예로서, 검증 모듈(220)은 웹 애플리케이션(210)가 브라우저(250)로부터 그러한 요청을 수신하는 것을 (예를 들면, 웹 애플리케이션(210)을 모니터링함으로써 또는 웹 애플리케이션(210)으로부터 통지를 수신함으로서) 검출할 수 있다.
컨트롤의 사용에 응답하여, 브라우저(250)는 문서를 (예를 들면, 그의 제 2 외관을 갖는) 그의 제 2 상태에서 디스플레이할 수 있다. 예를 들면, 제 2 상태와 관련된 정보(예를 들면, 제 2 상태를 정의하는 정보)는 브라우저(250)에 의해 (예를 들면, 관리 모듈(260)에 의해) 검증 모듈(220)로부터, 웹 애플리케이션(210)으로부터, 데이터베이스(115)로부터, 브라우저 캐시(510)로부터, 또는 이들의 임의의 적절한 조합으로부터 취득될 수 있다.
동작(740)에서, 웹 서버 머신(110)의 검증 모듈(220)은 문서의 제 2 상태를 제 2 URL (예를 들면, http://t.d.com/y/k)에 매핑한다. 예를 들면, 검증 모듈(220)은 제 2 URL과 문서의 제 2 외관을 정의하는 데이터(예를 들면, 동작(730)에 대하여 앞에서 논의된 관련 정보) 간의 대응 관계를 저장함으로써 제 2 상태를 제 2 URL에 매핑할 수 있다. 대응 관계, 제 2 URL, 제 2 외관을 정의하는 데이터, 또는 이들의 임의의 적절한 조합은 검증 모듈(220)에 의해 데이터베이스(115)에 (예를 들면, 테이블의 로우(row)에 또는 트리플릿(triplet)으로서) 저장될 수 있다.
도 8에 도시된 바와 같이, 방법(700)은 동작(802, 810, 812, 830, 832, 840, 및 842) 중 하나 이상의 동작을 포함할 수 있다. 동작(802)은 동작(710)에 앞서 수행될 수 있거나 동작(710)에서 수신된 요청에 응답하여 수행될 수 있다. 동작(802)에서, 웹 서버 머신(110)의 프로비전 모듈(230)은 (예를 들면, 브라우저(250) 내에서 실행을 위한, 예를 들면, 플러그-인, 애플릿, 위젯, 스크립트, 또는 이들의 임의의 적절한 조합과 같은 브라우저-실행 가능한 소프트웨어로서) 관리 모듈(260)을 브라우저(250)에 제공한다.
브라우저(250)에 제공된 후, 관리 모듈(260)은 동작(710)에서 수신된 요청에 의해 참조되는 제 1 URL(예를 들면, http://t.d.com/x/z)에 의해 찾을 수 있는 문서의 제 2 상태에 관련된 정보(예를 들면, 제 2 외관을 정의하는 데이터)를 저장하도록 브라우저(250)를 구성할 수 있다. 예를 들면, 관리 모듈(260)은 그러한 관련 정보를 브라우저 캐시(510)에 저장하도록 브라우저(250)를 구성할 수 있다. 관리 모듈(260)은 또한 제 2 URL (e.g., http://t.d.com/y/k)과 제 2 상태와 관련된 정보 간의 대응 관계를 저장하도록 브라우저(250)를 구성할 수 있다. 이러한 대응 관계는 브라우저 캐시(510)에도 또한 저장될 수 있다. 관리 모듈(260)은 또한 하나 이상의 URL(예를 들면, 제 1 URL, 제 2 URL, 또는 둘 다)이 문서의 유효 상태(예를 들면, 아직 소멸되지 않은 상태)에 대응한다는 검증을 요청하도록 브라우저(250)를 구성할 수 있다.
동작(810)은 제 1 URL을 참조하라는 요청이 수신되는 동작(710)의 부분(예를 들면, 선도적 작업, 서브루틴, 또는 일부분), 또는 동작(710)과 병행하여 수행될 수 있다. 동작(810)에서, 웹 서버 머신(110)의 검증 모듈(220)은 제 1 URL이 문서에 대해 유효 상태(예를 들면, 아직 소멸되지 않은 상태일 수 있는 제 1 상태)에 대응한다는 검증의 요청을 수신한다. 다양한 예시적인 실시예에 따르면, 검증 모듈(220)은 (예를 들면, URL이 유효하다고 표시하는 데이터베이스(115) 내부의 룩업 테이블에 액세스함으로써) 요청된 검증의 일부 또는 전부를 수행할 수 있다.
동작(812)에서, 검증 모듈(220)은 제 1 URL(예를 들면, 제 1 폴더 경로("/x/z")를 갖는, http://t.d.com/x/z)이 문서의 유효 상태에 대응한다는 요청된 검증을 제공한다. 예를 들면, 검증 모듈(220)은 브라우저(250)에게 (예를 들면, 관리 모듈(260)을 통해) 제 1 URL이 문서의 (예를 들면, 제 1 외관을 갖는) 제 1 상태에 대응하며, 그리고 이러한 제 1 상태가 문서에 대해 유효한 (예를 들면, 아직 소멸되지 않은) 상태라는 표시를 제공할 수 있다. 방법(700)에서 동작(810 및 812)은 방법(300)의 동작(303)의 전부 또는 일부에 대응할 수 있다. 일부 예시적인 실시예에서, 동작(720)은 동작(812)에서 제공된 검증에 기초하여 수행될 수 있다.
동작(830)은 검증 모듈(220)이 컨트롤의 사용을 검출하여 문서의 제 2 상태를 불러오는 동작(730)의 일부로서 또는 동작(730)과 병행하여 수행될 수 있다. 동작(830)에서, 웹 서버 머신(110)의 검증 모듈(220)은 제 2 URL이 문서에 대해 유효 상태(예를 들면, 아직 소멸되지 않은 상태일 수 있는 제 2 상태)에 대응한다는 검증의 요청을 수신한다. 다양한 예시적인 실시예에 따르면, 검증 모듈(220)은 (예를 들면, URL이 유효하다고 표시하는 데이터베이스(115) 내부의 룩업 테이블에 액세스함으로써) 요청된 검증의 전부 또는 일부를 수행할 수 있다.
동작(832)에서, 검증 모듈(220)은 제 2 URL(예를 들면, 그의 제 2 폴더 경로("/y/k")를 갖는, http://t.d.com/y/k)이 문서의 유효 상태에 대응한다는 요청된 검증을 제공한다. 예를 들면, 검증 모듈(220)은 브라우저(250)에게 (예를 들면, 관리 모듈(260)을 통해) 제 2 URL이 문서의 (예를 들면, 제 2 외관을 갖는) 제 2 상태에 대응하며, 그리고 이러한 제 2 상태가 문서에 대해 유효한 (예를 들면, 아직 소멸되지 않은) 상태라는 표시를 제공할 수 있다. 방법(700)에서 동작(830 및 832)은 방법(300)의 동작의 전부 또는 일부에 대응할 수 있다. 일부 예시적인 실시예에서, 문서의 제 2 상태를 정의하는 데이터는 동작(832)에서 제공된 검증에 기초하여 (예를 들면, 웹 애플리케이션(210)에 의해, 검증 모듈(220)에 의해, 또는 둘 다에 의해) (예를 들면, 관리 모듈(260)을 통해) 브라우저(250)로 제공될 수 있다.
동작(840)은 브라우저(250)가 문서의 제 2 상태를 (예를 들면, 디바이스(130)의 스크린(131) 상에) 디스플레이하는 동안 수행될 수 있다. 일부 예시적인 실시예에서, 그의 제 2 상태의 문서에는 문서의 제 1 상태(예를 들면, 문서가 그의 제 1 외관을 갖는 제 1 상태)를 불러오는데 사용할 수 있는 어떠한 컨트롤(예를 들면, 임의의 링크, 버튼, 또는 핫스팟)도 없을 수 있다. 이러한 상황에서, 사용자(132)는 브라우저(250)에게 URL(예를 들면, 브라우저(250)에 의해 이전에 디스플레이된 콘텐츠에 대응하는 URL)의 이력 내에서 뒤로 내비게이트하라는 커맨드를 제공함으로써 문서를 그의 제 1 상태에서 다시 디스플레이하기를 희망할 수 있다. 예를 들면, 사용자(132)는 브라우저(250)가 문서를 그의 제 1 상태에서 다시 디스플레이하는 "백" 커맨드를 실행하게 할 것을 희망할 수 있다.
일부 예시적인 실시예에서, 동작(840)은 브라우저가 일부 추가 콘텐츠(예를 들면, 문서의 제 3 상태 또는 완전히 다른 문서)를 디스플레이하는 동안 수행될 수 있으며, 사용자(132)는 문서를 그의 제 1 상태에서 다시 디스플레이하기를 희망할 수 있다. 이러한 상황에서, 사용자(132)는 브라우저(250)에게 브라우저(250)의 URL의 이력 내에서 앞으로 내비게이트하라는 커맨드를 제공함으로써 문서를 그의 제 1 상태에서 다시 디스플레이하기를 희망할 수 있다. 예를 들면, 사용자(132)는 브라우저(250)가 문서를 그의 제 1 상태에서 다시 디스플레이하는 "포워드" 커맨드를 실행하게 할 것을 희망할 수 있다.
특정한 예시적인 실시예에서, 동작(840)은 브라우저가 (URL의 이력 내부에서 내비게이트하는 결과로서) 문서의 제 1 상태를 디스플레이하는 동안 수행될 수 있다. 이러한 상황에서, 사용자(132)는 브라우저(250)가 "리로드" 커맨드, "리프레쉬" 커맨드, 또는 "리드로우(redraw)" 커맨드를 실행하게 함으로써 문서를 그의 제 1 상태에서 리로드(또는 리프레쉬)하기를 희망할 수 있다.
동작(840)에서, 웹 서버 머신(110)의 검증 모듈(220)은 제 1 URL이 문서에 대해 유효 상태(예를 들면, 아직 소멸되지 않은 상태일 수 있는 제 1 상태)에 대응한다는 검증 요청을 수신한다. 앞에서 설명한 것처럼, 검증 모듈(220)은 (예를 들면, URL이 유효하다고 표시하는 데이터베이스(115) 내 룩업 테이블에 액세스함으로써) 요청된 검증의 일부 또는 전부를 수행할 수 있다. 다양한 예시적인 실시예에 따르면, 이러한 요청의 수신은 브라우저(250)가 사용자 커맨드(예를 들면, "백" 커맨드, "포워드" 커맨드, "리프레쉬" 커맨드, 또는 이들의 임의의 적절한 조합)를 실행한 결과일 수 있다.
동작(842)에서, 검증 모듈(220)은 제 1 URL(예를 들면, 그의 제 1 폴더 경로("/x/z")를 갖는, http://'t.d.com/x/z)가 문서의 유효 상태에 대응한다는 요청된 검증을 제공한다. 앞에서 설명한 것처럼, 검증 모듈(220)은 브라우저(250)에게 (예를 들면, 관리 모듈(260)을 통해) 제 1 URL이 문서의 (예를 들면, 제 1 외관을 갖는) 제 1 상태에 대응하며, 그리고 이러한 제 1 상태가 문서에 대해 유효한 (예를 들면, 아직 소멸되지 않은) 상태라는 표시를 제공할 수 있다. 일부 예시적인 실시예에 따르면, 동작(842)에서 제공된 검증에 기초하여, 문서가 제공될 수 있는 제 1 데이터를 정의하는 데이터는 (예를 들면, 웹 애플리케이션(210)에 의해, 검증 모듈(220)에 의해, 또는 둘 다에 의해) (예를 들면, 관리 모듈(260)을 통해) 브라우저(250)에 제공될 수 있다.
도 9는 일부 예시적인 실시예에 따라서, URL에 매핑되는 페이지 상태를 이용하는 방법(900)을 수행할 때 방법(700)의 동작을 디바이스(130)의 동작과 함께 예시하는 플로우차트이다. 방법(900)의 동작은 도 2에 대하여 앞에서 기술된 모듈 및 애플리케이션을 이용하여 수행될 수 있다. 도 9에 도시된 바와 같이, 방법(900)은 동작(902, 904, 905, 912, 924, 926, 932, 934, 940, 및 944) 중 한 가지 이상의 동작을 포함한다.
동작(9020에서, 디바이스(130), 브라우저(250), 또는 둘 다는 동작(802)에서 웹 서버 머신(110)에 의해 제공되는 관리 모듈(260)을 수신한다. 그러면 브라우저(250)는 (예를 들면, 플러그-인, 애플릿, 위젯, 스크립트, 또는 이들의 임의의 적절한 조합과 같은 브라우저-실행 가능한 소프트웨어로서) 관리 모듈(260)을 통합하거나 실행할 수 있다.
동작(904)에서, 브라우저(250)는 동작(710)에서 웹 서버 머신(110)에 의해 수신된 요청을 전송한다. 앞에서 설명한 것처럼, 이러한 요청은 문서를 찾을 수 있는 제 1 URL(예를 들면, 그의 제 1 폴더 경로("/x/z")를 갖는, http://t.d.com/x/z)을 참조한다.
동작(905)은 동작(904)의 일부로서 또는 동작(904)과 병행하여 수행될 수 있다. 동작(905)에서, 디바이스(130)의 관리 모듈(260)은 동작(710)의 일부일 수 있는, 동작(810)에서 웹 서버 머신(110)에 의해 수신된 요청을 전송한다. 앞에서 설명한 것처럼, 이러한 요청은 제 1 URL(예를 들면, http://'t.d.com/x/z)이 문서의 유효 상태에 대응한다는 검증 요청일 수 있다.
동작(912)에서, 디바이스(130)의 관리 모듈(260)은 브라우저 캐시(510)에 액세스하고 문서의 제 1 상태를 정의하는 임의의 데이터(예를 들면, 문서의 제 1 외관을 정의하는 데이터)에 대해 브라우저 캐시(510)를 체크한다. 동작(912)은 동작(812)에서 웹 서버 머신(110)에 의해 제공된 검증(예를 들면, 제 1 URL이 문서에 대해 유효 상태에 대응한다는 검증)에 대한 응답으로 수행될 수 있다. 앞에서 설명한 것처럼, 만일 그러한 데이터가 브라우저 캐시(510)에서 존재하면, 이 데이터는 관리 모듈(260)에 의해, 브라우저(250)에 의해, 또는 둘 다에 의해, 디바이스(130)의 스크린(131) 상에 문서를 (예를 들면, 그의 제 1 상태를 갖는) 제 1 상태에서 디스플레이하는데 사용될 수 있다(예를 들면, 검색될 수 있다).
동작(924)에서, 디바이스(130) 상의 브라우저(250)는 문서를 그의 제 1 외관을 갖는 그의 제 1 상태에서 디스플레이할 수 있으며, 문서를 그의 제 1 상태에서 디스플레이하는 동안 제 1 상태에 대응하는 제 1 URL(예를 들면, http://t.d.com/x/z)을 디스플레이할 수 있다. 다양한 예시적인 실시예에 따르면, 제 1 URL은 어떠한 해시 플래그먼트(예를 들면, 해시 태그)도 없으며, 제 1 URL은 어떠한 해시 플래그먼트도 제 1 URL에 포함되지 않은 채 브라우저(250)에 의해 디스플레이된다. 디바이스(130)의 관리 모듈(260)은 동작(924)을 수행하는 동안 브라우저(250)를 완전히 또는 부분적으로 제어할 수 있다.
동작(926)에서, (예를 들면, 브라우저(250)의 일부로서 실행하는) 관리 모듈(260)은 동작(730)의 일부일 수 있는, 동작(830)에서 웹 서버 머신(110)에 의해 수신된 요청을 전송할 수 있다. 앞에서 설명한 것처럼, 이러한 요청은 문서를 찾을 수 있는 제 2 URL(예를 들면, 그의 제 2 폴더 경로("/y/k")를 갖는, http://t.d.com/y/k)를 참조한다. 앞에서 설명한 것처럼, 이러한 요청은 제 2 URL이 문서의 유효 상태에 대응한다는 검증 요청일 수 있다.
동작(932)에서, 디바이스(130)의 관리 모듈(260)은 브라우저 캐시(510)에 액세스하여 문서의 제 2 상태를 정의하는 임의의 데이터(예를 들면, 문서의 제 2 외관을 정의하는 데이터)에 대해 브라우저 캐시(510)를 체크한다. 동작(932)은 동작(832)에서 웹 서버 머신(110)에 의해 제공된 검증(예를 들면, 제 2 URL이 문서에 대해 유효 상태에 대응한다는 검증)에 대한 응답으로 수행될 수 있다. 앞에서 설명한 것처럼, 만일 그러한 데이터가 브라우저 캐시(510)에 존재하면, 이 데이터는 관리 모듈(260)에 의해, 브라우저(250)에 의해, 또는 둘 다에 의해, 디바이스(130)의 스크린(131) 상에 문서를 (예를 들면, 그의 제 1 상태를 갖는) 제 1 상태에서 디스플레이하는데 사용될 수 있다(예를 들면, 검색될 수 있다).
동작(934)에서, 디바이스(130) 상의 브라우저(250)는 문서를 그의 제 2 외관을 갖는 그의 제 2 상태에서 디스플레이할 수 있으며, 문서를 그의 제 2 상태에서 디스플레이하는 동안 제 2 상태에 대응하는 제 2 URL(예를 들면, http://t.d.com/y/k)을 디스플레이할 수 있다. 다양한 예시적인 실시예에 따르면, 제 2 URL은 어떠한 해시 플래그먼트(예를 들면, 해시 태그)도 없으며, 제 2 URL은 어떠한 해시 플래그먼트도 제 2 URL에 포함되지 않은 채 브라우저(250)에 의해 디스플레이된다. 디바이스(130)의 관리 모듈(260)은 동작(934)을 수행하는 동안 브라우저(250)를 완전히 또는 부분적으로 제어할 수 있다.
동작(940)에서, 디바이스(130) 상의 브라우저(250)는 문서를 그의 제 1 상태에서 다시 디스플레이하라는 (예를 들면, 사용자(132)에 의해 제출된) 사용자 커맨드를 실행한다. 예를 들면, 브라우저(250)는 (예를 들면, 동작(934)에 대하여 앞에서 설명된 것처럼) 문서를 그의 제 2 상태에서 디스플레이할 수 있으며, 브라우저(250)는 브라우저(250)에 의해 이전에 디스플레이된 콘텐츠에 대응하는 URL의 이력 내를 내비게이트하라는 사용자 커맨드(예를 들면, "백" 커맨드)를 수신하여 실행할 수 있다. 따라서, 관리 모듈(260)은 동작(840)에서 웹 서버 머신(110)에 의해 수신된 요청을 전송할 수 있다. 앞에서 설명한 것처럼, 이러한 요청은 제 1 URL이 문서의 유효 상태에 대응한다는 검증의 요청일 수 있다.
동작(944)에서, 디바이스(130) 상의 브라우저(250)는 문서를 그의 제 1 외관을 갖는 그의 제 1 상태에서 디스플레이하며(예를 들면, 다시 디스플레이하며), 문서를 그의 제 1 상태에서 디스플레이하는 동안, 제 1 상태에 대응하는 제 1 URL(예를 들면, http://t.d.com/x/z)를 디스플레이할 수 있다(예를 들면, 다시 디스플레이할 수 있다). 앞에서 설명한 것처럼, 제 1 URL은 어떠한 해시 플래그먼트(예를 들면, 해시 태그)도 없으며, 제 1 URL은 어떠한 해시 플래그먼트도 제 1 URL에 포함되지 않은 채 브라우저(250)에 의해 디스플레이될 수 있다. 디바이스(130)의 관리 모듈(260)은 동작(944)을 수행하는 동안 브라우저(250)를 완전히 또는 부분적으로 제어할 수 있다.
다양한 예시적인 실시예에 따르면, 본 출원에서 개시된 방법론 중 한 가지 이상은 페이지 상태를 URL에 매핑하기를 용이하게 해줄 수 있다. 더욱이, 본 출원에서 개시된 방법론 중 한 가지 이상은 URL의 검증, 페이지 상태를 정의하는 데이터의 캐싱, 그리고 매핑된 URL에 대응하는 각종 웹 페이지 상태의 디스플레이를 비롯하여, URL에 매핑되는 페이지 상태의 사용을 용이하게 해줄 수 있다. 그러므로, 본 출원에서 개시된 방법론 중 한 가지 이상은 URL에서 해시 플래그먼트를 사용하지 않고도 복수의 상태 또는 복수의 외관을 갖는 문서의 검색 및 프리젠테이션은 물론이고, 문서의 각종 상태에 대응하는 인간적 견지에서 판독가능하고 직관적인 URL의 편리하고 일관적인 사용 및 공유를 용이하게 해줄 수 있다.
이러한 효과가 합쳐져서 고려될 때, 본 출원에서 개시된 방법론 중 한 가지 이상은 그러지 않았다면 복수의 상태 또는 복수의 외관을 갖는 문서의 검색 및 프리젠테이션에 포함되었을 특정한 노력이나 리소스를 필요 없게 할 수 있다. 문서의 특정한 상태나 외관을 다시 방문할 때 사용자가 소진하는 노력은 본 출원에서 개시된 방법론 중 한 가지 이상에 의해 줄일 수 있다. (네트워크 환경(100) 내의) 하나 이상의 머신, 데이터베이스, 또는 디바이스에 의해 사용되는 컴퓨팅 리소스도 마찬가지로 줄어들 수 있다. 그러한 컴퓨팅 리소스의 예는 프로세서 사이클, 네트워크 트래픽, 메모리 사용, 데이터 저장 용량, 전력 소비, 및 냉각 성능을 포함한다.
도 10은 일부 예시적인 실시예에 따라서, 머신-판독가능한 매체(예를 들면, 머신-판독가능한 저장 매체, 컴퓨터-판독가능한 저장 매체, 또는 이들의 임의의 적절한 조합)로부터 명령어를 판독할 수 있고 본 출원에서 개시된 방법론 중 임의의 한 가지 이상을 전부 또는 일부 수행할 수 있는, 머신(1000)의 컴포넌트를 예시하는 블록도이다. 구체적으로, 도 10은 컴퓨터 시스템의 예시적인 형태로서, 머신(1000)으로 하여금 본 출원에서 논의된 방법론 중 임의의 한 가지 이상을 수행하게 하기 위한 명령어(1024)(예를 들면, 소프트웨어, 프로그램, 애플리케이션, 애플릿, 앱, 또는 기타 실행 가능한 코드)가 전체적으로 또는 부분적으로 실행될 수 있는 머신(1000)의 개략적인 표현을 도시한다. 대안의 실시예에서, 머신(1000)은 스탠드얼론 디바이스로서 동작하거나 다른 머신에 연결될 수 있다(예를 들면, 네트워크화될 수 있다). 네트워크화된 구성에서, 머신(1000)은 서버-클라이언트 네트워크 환경에서 서버 머신 또는 클라이언트 머신의 자격으로 동작할 수 있거나, 분산된(예를 들면, 피어-투-피어) 네트워크 환경에서 피어 머신으로서 동작할 수 있다. 머신(1000)은 그 머신에 의해 행하여질 액션을 명시하는 명령어(1024)를 순차적으로 또는 그와 다르게 실행할 수 있는 서버 컴퓨터, 클라이언트 컴퓨터, 퍼스널 컴퓨터(PC), 태블릿 컴퓨터, 랩톱 컴퓨터, 넷북, 셋탑 박스(STB), 개인 휴대 단말(PDA), 셀룰러 텔레폰, 스마트폰, 웹 어플라이언스, 네트워크 라우터, 네트워크 스위치, 네트 브릿지, 또는 임의의 머신일 수 있다. 또한, 단지 하나의 머신만이 예시되어 있지만, "머신"이라는 용어는 또한 명령어(724)를 개별적으로 또는 연합하여 실행하여 본 출원에서 논의된 방법론 중 임의의 하나 이상의 전부 또는 일부를 수행하는 명령어를 개별적으로 또는 연대하여 실행하는 머신들의 집합을 포함하는 것으로도 취급될 수 있다.
머신(1000)은 버스(1008)를 통해 서로와 통신하도록 구성되는, 프로세서(1002)(예를 들면, 중앙 처리 유닛(a central processing unit, CPU), 그래픽 처리 유닛(a graphics processing unit, GPU), 디지털 신호 프로세서(a digital signal processor, DSP), 주문형 집적 회로(an application specific integrated circuit, ASIC), 무선-주파수 집적 회로(a radio-frequency integrated circuit, RFIC), 또는 이들의 임의의 적절한 조합), 메인 메모리(1004), 및 스태틱 메모리(1006)를 포함한다. 머신(1000)은 그래픽 디스플레이(1010)(예를 들면, 플라즈마 디스플레이 패널(a plasma display panel, PDP), 발광 다이오드(a light emitting diode, LED) 디스플레이, 액정 디스플레이(a liquid crystal display, LCD), 프로젝터, 또는 음극선관(a cathode ray tube, CRT)을 더 포함할 수 있다. 머신(1000)은 또한 영숫자 입력 디바이스(1012)(예를 들면, 키보드), 커서 제어 디바이스(1014)(예를 들면, 마우스, 터치패드, 트랙볼, 조이스틱, 움직임 센서, 또는 기타 포인팅 기기), 저장 유닛(1016), 신호 생성 디바이스(1018)(예를 들면, 스피커), 및 네트워크 인터페이스 디바이스(1020)를 포함할 수 있다.
저장 유닛(1016)은 본 출원에서 기술된 방법론 또는 기능 중 임의의 한 가지 이상을 구현하는 명령어(1024)가 저장된 머신-판독가능한 매체(1022)를 포함한다. 명령어(1024)는 머신(1000)에 의한 그 명령어의 실행 동안, 메인 메모리(1004) 내에서, 프로세서(1002) 내에서(예를 들면, 프로세서의 캐시 메모리 내에서), 또는 이들 둘 다에서, 전적으로 또는 적어도 부분적으로 상주할 수 있다. 따라서, 메인 메모리(1004) 및 프로세서(1002)는 머신-판독가능한 매체라고 간주될 수 있다. 명령어(1024)는 네트워크 인터페이스 디바이스(1020)를 통해 네트워크(1026)를 거쳐 전송되거나 수신될 수 있다.
본 출원에서 사용된 것으로서, "메모리"라는 용어는 데이터를 일시적으로 또는 영구적으로 저장할 수 있는 머신-판독 가능한 매체를 말하며 이것으로 한정되지 않지만, 랜덤-액세스 메모리(random-access memory, RAM), 판독-전용 메모리(read-only memory, ROM), 버퍼 메모리, 플래시 메모리, 및 캐시 메모리를 포함하는 것으로 취급될 수 있다. 머신-판독 가능한 매체(1022)가 예시적인 실시예에서 단일의 매체인 것으로 도시되어 있지만, "머신-판독 가능한 매체"라는 용어는 명령어를 저장할 수 있는 단일의 매체 또는 다중 매체(예를 들면, 중앙 집중형 또는 분산형 데이터베이스, 또는 연합 캐시 및 서버)를 포함하는 것으로 취급되어야 한다. "머신-판독 가능한 매체"라는 용어는 또한 명령어가, 머신의 하나 이상의 프로세서에 의해 실행될 때, 그 머신으로 하여금 본 출원에서 기술된 방법론 중 임의의 한 가지 이상을 수행하도록, 머신(예를 들면, 머신(1000))에 의해 실행하기 위한 명령어를 저장할 수 있는 임의의 매체 또는 복수의 매체의 조합을 포함하는 것으로 취급될 수 있다. 따라서, "머신-판독 가능한 매체"는 단일의 저장 장치 또는 디바이스뿐만 아니라, 다중 저장 장치 또는 디바이스를 포함하는 "클라우드-기반" 저장 시스템 또는 저장 네트워크를 말한다. 따라서, "머신-판독 가능한 매체"라는 용어는 이것으로 한정되지 않지만, 고체-상태 메모리, 광학 매체, 자기 매체, 또는 이들의 임의의 적절한 조합의 형태로 된 하나 이상의 데이터 저장소를 포함하는 것으로 취급될 것이다.
본 명세서 전체에서, 복수의 인스턴스가 단일의 인스턴스로서 기술되는 컴포넌트, 동작, 또는 구조를 구현할 수 있다. 비록 하나 이상의 방법의 개개의 동작이 별개의 동작으로 예시되고 기술되어 있을지라도, 개개의 동작 중 하나 이상은 동시에 수행될 수 있고, 그 어떤 것도 동작이 예시된 순서대로 수행되어야 하는 것은 아니다. 예시적인 구성에서 별개의 컴포넌트로서 제시된 구조 및 기능은 조합된 구조나 컴포넌트로서 구현될 수 있다. 유사하게, 단일의 컴포넌트로서 제시된 구조 및 기능은 개별 컴포넌트로서 구현될 수 있다. 이러한 것과 다른 변형, 수정, 부가, 및 개선은 본 출원에서 주제의 범위 내에 속한다.
본 명세서에서 특정 실시예가 로직이나 복수의 컴포넌트, 모듈, 또는 메커니즘을 포함하는 것으로 기술된다. 모듈은 소프트웨어 모듈(예를 들면, 머신-판독 가능한 매체 상에서 구현된 또는 전송 신호 내에서 구현된 코드) 또는 하드웨어 모듈 중 어느 하나를 구성할 수 있다. "하드웨어 모듈"은 특정한 동작을 수행할 수 있는 유형의 유닛이며 특정한 물리적 방식으로 구성되거나 배열될 수 있다. 다양한 예시적인 실시예에서, 하나 이상의 컴퓨터 시스템(예를 들면, 스탠드얼론 컴퓨터 시스템, 클라이언트 컴퓨터 시스템, 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하나 이상의 하드웨어 모듈(예를 들면, 프로세서 또는 프로세서들의 그룹)은 소프트웨어(예를 들면, 애플리케이션 또는 애플리케이션의 일부분)에 의해 본 명세서에서 기술된 바와 같은 특정한 동작을 수행하도록 동작하는 하드웨어 모듈로서 구성될 수 있다.
일부 실시예에서, 하드웨어 모듈은 기계적으로, 전자적으로, 또는 이들의 임의의 적절한 조합으로 구현될 수 있다. 예를 들면, 하드웨어 모듈은 영구적으로 특정한 동작을 수행하도록 구성된 전용의 회로 또는 로직을 포함할 수 있다. 예를 들면, 하드웨어 모듈은 필드 프로그래머블 게이트 어레이(a field programmable gate array, FPGA) 또는 ASIC과 같은 특수-목적 프로세서일 수 있다. 하드웨어 모듈은 또한 소프트웨어에 의해 특정한 동작을 수행하도록 일시적으로 구성될 수 있는 프로그래머블 로직 또는 회로를 포함할 수 있다. 예를 들면, 하드웨어 모듈은 범용 프로세서 또는 기타 프로그래머블 프로세서 내에 포함되어 있는 소프트웨어를 포함할 수 있다. 하드웨어 모듈을 기계적으로, 전용의 영구적으로 구성된 회로로, 또는 (예를 들면 소프트웨어에 의해 구성되는) 일시적으로 구성된 회로로 구현하려는 판단은 비용과 시간을 고려하여 추진될 수 있다는 것이 인식될 것이다.
따라서, "하드웨어 모듈"이라는 구문은 특정한 방식으로 동작하거나 본 출원에서 기술된 특정 동작을 수행하기 위해 물리적으로 구축되거나, 영구적으로 구성되거나(예를 들면, 하드웨어에 내장되거나(hardwired), 또는 일시적으로 구성된(예를 들면, 프로그램된) 엔티티인 유형의 엔티티를 망라하는 것으로 이해되어야 한다. 본 출원에서 사용된 것으로서, "하드웨어-구현된 모듈"은 하드웨어 모듈을 말한다. 하드웨어 모듈이 일시적으로 구성되는(또는 프로그램되는) 실시예를 고려하면, 각각의 하드웨어 모듈은 어느 하나의 인스턴스에서 적시에 구성되거나 인스턴스화될 필요가 없다. 예를 들면, 하드웨어 모듈이 의해 특수-목적 프로세서가 되기 위해 소프트웨어에 의해 구성되는 범용 프로세서를 포함하는 경우, 범용 프로세서는 상이한 시간에서 (예를 들면, 상이한 하드웨어 모듈을 포함하는) 제각기 상이한 특수-목적 프로세서로서 구성될 수 있다. 따라서 소프트웨어는 예를 들면, 하나의 시간 인스턴스에서 특별한 하드웨어 모듈을 구성하고 그리고 상이한 시간 인스턴스에서 상이한 하드웨어 모듈을 구성하는 프로세서를 구성할 수 있다.
하드웨어 모듈은 다른 하드웨어 모듈로 정보를 제공하고 그 다른 하드웨어 모듈로부터 정보를 수신할 수 있다. 따라서, 기술된 하드웨어 모듈은 통신으로 결합되어 있는 것이라고 간주될 수 있다. 복수의 하드웨어 모듈이 동시적으로 존재하는 경우, 하드웨어 모듈 중 둘 이상의 하드웨어 모듈 사이에서 또는 둘 이상의 하드웨어 모듈끼리 (예를 들면, 적절한 회로 및 버스를 통해) 신호 전송을 하여 통신이 성사될 수 있다. 복수의 하드웨어 모듈이 상이한 시간에 구성되거나 인스턴스화되는 실시예에서, 그러한 하드웨어 모듈들 간의 통신은 예를 들면, 복수의 하드웨어 모듈이 액세스하는 메모리 구조체 내 정보의 저장 및 검색을 통해 성취될 수 있다. 예를 들면, 하나의 하드웨어 모듈은 어떤 동작을 수행할 수 있고 그 동작의 출력을 그 하드웨어 모듈이 통신으로 결합되어 있는 메모리 디바이스에 저장할 수 있다. 그러면 또 다른 하드웨어 모듈이 나중 시간에 그 메모리 디바이스에 액세스하여 저장된 출력을 검색하여 처리할 수 있다. 하드웨어 모듈은 또한 입력 또는 출력 디바이스와 통신을 개시할 수 있고, 리소스(예를 들면, 정보의 모임)에 대해 동작할 수 있다.
본 출원에서 기술된 예시적인 방법의 다양한 동작은 적어도 부분적으로, 관련된 동작을 수행하기 위해 (예를 들면, 소프트웨어에 의해) 일시적으로 구성되거나 영구적으로 구성된 하나 이상의 프로세서에 의해 수행될 수 있다. 일시적으로 구성되든 영구적으로 구성되든, 그러한 프로세서는 본 출원에서 기술된 하나 이상의 동작이나 기능을 수행하기 위해 동작하는 프로세서-구현된 모듈을 구성할 수 있다. 본 출원에서 사용된 것으로서, "프로세서-구현된 모듈"은 하나 이상의 프로세서를 이용하여 구현된 하드웨어 모듈을 말한다.
유사하게, 본 출원에서 기술된 방법은 적어도 부분적으로 프로세서-구현될 수 있으며, 프로세서는 하드웨어의 일 예이다. 예를 들면, 방법의 동작 중 적어도 일부 동작은 하나 이상의 프로세서 또는 프로세서-구현된 모듈에 의해 수행될 수 있다. 더욱이, 하나 이상의 프로세서는 또한 "클라우드 컴퓨팅" 환경에서 관련 동작의 수행을 지원하도록 또는 "서비스형 소프트웨어(software as a service)"(SaaS)로서 동작할 수 있다. 예를 들면, 동작 중 적어도 일부 동작은 (프로세서를 포함하는 머신의 예로서) 컴퓨터 그룹에 의해 수행될 수 있고, 이 때 이들 동작은 네트워크(예를 들면, 인터넷)를 통해 그리고 하나 이상의 적절한 인터페이스(예를 들면, 응용 프로그램 인터페이스(application program interface, API)를 통해 액세스 가능하다.
동작 중 어떤 동작은 단일 머신 내에 상주할 뿐만 아니라, 복수의 머신 전반에 배치되어 있는 하나 이상의 프로세서들 사이에서 분산되어 수행될 수 있다. 일부의 예시적인 실시예에서, 하나 이상의 프로세서 또는 프로세서-구현된 모듈은 (예를 들면, 가정 환경, 사무소 환경, 또는 서버 팜 내) 단일의 지리적 장소에 배치되어 있을 수 있다. 다른 예시적인 실시예에서, 하나 이상의 프로세서 또는 프로세서-구현된 모듈은 복수의 지리적 장소 전체에 걸쳐 분산되어 있을 수 있다.
본 출원에서 기술된 주제의 몇몇 부분은 머신 메모리(예를 들면, 컴퓨터 메모리) 내에서 비트 또는 이진 디지털 신호로서 저장되는 데이터에 관한 동작의 알고리즘 또는 기호적 표현의 관점에서 제시될 수 있다. 그러한 알고리즘 또는 기호적 표현은 데이터 처리 기술에서 통상의 지식을 갖는 자에 의해 자기들의 작업을 본 기술에서 통상의 지식을 갖는 다른 자에게 전해주는데 사용된다. 본 출원에서 사용된 것으로서, "알고리즘"은 희망하는 결과에 이르는 동작 또는 유사한 처리의 일관성 있는 시퀀스이다. 이러한 맥락에서, 알고리즘 및 동작은 물리적인 양의 물리적인 조작을 수반한다. 전형적으로, 반드시 그런 것은 아니지만, 그러한 양은 머신에 의해 저장되고, 액세스되고, 전송되고, 조합되고, 비교되고, 또는 그렇지 않으면 조작될 수 있는 전기, 자기, 또는 광학 신호의 형태를 가질 수 있다. 이것은 때때로 주로 일반적인 용법이기 때문에, "데이터", "콘텐츠", "비트", " 값", "요소", "기호", "문자", "가격", "숫자", 또는 "수치" 등과 같은 단어를 사용하여 그러한 신호를 지칭하는 것이 편리하다. 그러나, 이러한 단어는 그저 편리한 표식이며 적절한 물리적인 양과 연관될 것이다.
달리 구체적으로 언급하지 않는 한, 본 출원에서 "처리", "계산", "연산", "결정", "제시", 또는 "디스플레이" 등과 같은 단어를 사용하는 설명은 정보를 수신하거나, 저장하거나, 전송하거나, 또는 디스플레이하는 하나 이상의 메모리(예를 들면, 휘발성 메모리, 비휘발성 메모리, 또는 이들의 임의의 적절한 조합), 레지스터, 또는 기타 머신 컴포넌트 내에서 물리적인(예를 들면, 전자, 자기, 또는 광학적) 양으로서 표현되는 데이터를 조작하거나 변환하는 머신(예를 들면, 컴퓨터)의 액션 또는 프로세스를 지칭할 수 있다. 뿐만 아니라, 달리 구체적으로 언급하지 않는 한, "한" 또는 "하나"라는 용어는 특허 명세서에서 통용되는 것으로서, 본 출원에서는 하나의 인스턴스보다 많은 하나 이상을 포함하는 것으로 사용된다. 마지막으로, 본 출원에서 사용되는 것으로서, "또는"이라는 용어는 달리 구체적으로 언급하지 않는 한 배타적이 아닌 "또는"이라고 언급한다.

Claims (20)

  1. 웹 애플리케이션과,
    검증 모듈(validation module)에 의해 구성되는 프로세서를 포함하되,
    상기 웹 애플리케이션은,
    브라우저에서 디스플레이하기 위한 문서를 찾을 수 있는 제 1 URL(uniform resource locator) - 상기 제 1 URL은 상기 문서가 제 1 외관(appearance)을 갖는 제 1 상태에 대응함 - 를 참조하라는 요청을 수신하고,
    상기 요청에 응답하여 그리고 상기 제 1 상태에 대응하는 상기 제 1 URL에 기초하여 상기 문서를 상기 제 1 외관을 갖는 상기 제 1 상태에서 상기 브라우저에 제공 - 상기 제 1 상태의 문서는 상기 문서가 제 2 외관을 갖는 제 2 상태를 불러오는데(invoke) 사용할 수 있는 컨트롤을 포함함 - 하도록 구성되고,
    상기 프로세서는,
    상기 문서의 상기 제 2 상태를 불러오는 상기 컨트롤의 사용을 검출 - 상기 컨트롤은 상기 브라우저에서 디스플레이하기 위해 상기 문서를 찾을 수 있는 제 2 URL을 참조하고, 상기 브라우저는 상기 컨트롤의 상기 사용에 응답하여 상기 문서를 상기 제 2 외관을 갖는 상기 제 2 상태에서 디스플레이함 - 하고,
    상기 제 2 URL과 상기 문서의 상기 제 2 외관을 정의하는 데이터 간의 대응 관계(correspondence relationship)를 저장함으로써 상기 문서의 상기 제 2 상태를 상기 제 2 URL에 매핑하도록 구성되는
    시스템.
  2. 제 1 항에 있어서,
    상기 브라우저에 관리 모듈(management module)을 제공하도록 구성되는 프로비전 모듈(provision module)을 더 포함하고,
    상기 관리 모듈은 상기 대응 관계를 상기 브라우저의 캐시에 저장하도록 상기 브라우저를 구성하는
    시스템.
  3. 제 1 항에 있어서,
    상기 브라우저에 관리 모듈을 제공하도록 구성되는 프로비전 모듈을 더 포함하고,
    상기 관리 모듈은 상기 제 2 URL이 상기 문서의 유효 상태(valid state)에 대응한다는 검증을 요청하도록 상기 브라우저를 구성하는
    시스템.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 제 2 상태의 상기 문서는 상기 문서가 상기 제 1 외관을 갖는 상기 제 1 상태를 불러오는데 사용할 수 있는 어떠한 컨트롤도 갖지 않고,
    상기 검증 모듈은,
    상기 제 1 URL이 상기 문서의 유효 상태에 대응한다는 검증을 위한 추가 요청 - 상기 추가 요청은 상기 브라우저가 상기 문서를 상기 제 2 상태에서 디스플레이하는 동안 상기 브라우저로부터 수신됨 - 을 수신하고,
    상기 추가 요청에 응답하여 상기 제 1 URL이 유효 상태에 대응한다는 검증을 제공하도록, 상기 프로세서를 구성하는
    시스템.
  5. 브라우저에서 디스플레이하기 위한 문서를 찾을 수 있는 제 1 URL(uniform resource locator) - 상기 제 1 URL은 상기 문서가 제 1 외관을 갖는 제 1 상태에 대응함 - 를 참조하라는 요청을 수신하는 단계와,
    상기 요청에 응답하여 그리고 상기 제 1 상태에 대응하는 상기 제 1 URL에 기초하여 상기 문서를 상기 제 1 외관을 갖는 상기 제 1 상태에서 상기 브라우저에 제공하는 단계 - 상기 제 1 상태의 문서는 상기 문서가 제 2 외관을 갖는 제 2 상태를 불러오는데 사용할 수 있는 컨트롤을 포함함 - 와,
    상기 문서의 상기 제 2 상태를 불러오는 상기 컨트롤의 사용 - 상기 컨트롤은 상기 브라우저에서 디스플레이하기 위해 상기 문서를 찾을 수 있는 제 2 URL을 참조하고, 상기 브라우저는 상기 컨트롤의 상기 사용에 응답하여 상기 문서를 상기 제 2 외관을 갖는 상기 제 2 상태에서 디스플레이함 - 을 검출하는 단계와,
    상기 제 2 URL와 상기 문서의 상기 제 2 외관을 정의하는 데이터 간의 대응 관계를 저장함으로써 상기 문서의 상기 제 2 상태를 상기 제 2 URL에 매핑 - 상기 매핑은 머신의 프로세서에 의해 수행됨 - 하는 단계를 포함하는
    방법.
  6. 제 5 항에 있어서,
    상기 컨트롤의 사용 이전에, 상기 브라우저는 상기 문서를 상기 제 1 외관을 갖는 상기 제 1 상태에서 디스플레이하는 동안 상기 문서의 상기 제 1 상태에 대응하는 상기 제 1 URL을 디스플레이하고,
    상기 컨트롤의 사용 이후에, 상기 브라우저는 상기 문서를 상기 제 2 외관을 갖는 상기 제 2 상태에서 디스플레이하는 동안 상기 문서의 상기 제 2 상태에 대응하는 상기 제 2 URL을 디스플레이하고,
    상기 제 1 URL 및 상기 제 2 URL은 어떠한 해시 플래그먼트(hash fragment)도 없고 상기 브라우저에 의해 어떠한 해시 플래그먼트도 없이 디스플레이되는
    방법.
  7. 제 5 항에 있어서,
    상기 컨트롤의 사용 이후에, 상기 브라우저는 상기 브라우저의 캐시로부터 상기 문서의 상기 제 2 외관을 정의하는 데이터를 검색함으로써 상기 문서를 상기 제 2 상태에서 디스플레이하는
    방법.
  8. 제 5 항에 있어서,
    상기 문서는 상기 컨트롤에 의해 구성가능한 동적으로 생성된 콘텐츠를 포함하는 단일-페이지 웹 페이지이며,
    상기 컨트롤은 링크, 버튼, 또는 핫스팟으로 이루어지는 그룹으로부터 선택되는
    방법.
  9. 제 5 항에 있어서,
    상기 제 1 URL은 상기 문서가 상기 제 1 외관을 갖는 상기 제 1 상태에 대응한다는 검증을 제공하는 단계를 더 포함하며,
    상기 문서를 상기 제 1 상태에서 제공하는 단계는 상기 제 1 URL이 상기 제 1 상태에 대응한다는 검증에 기초하는
    방법.
  10. 제 5 항에 있어서,
    상기 브라우저에 관리 모듈을 제공하는 단계를 더 포함하고,
    상기 관리 모듈은 상기 대응 관계를 상기 브라우저의 캐시에 저장하도록 상기 브라우저를 구성하는
    방법.
  11. 제 5 항에 있어서,
    상기 브라우저에 관리 모듈을 제공하는 단계를 더 포함하고,
    상기 관리 모듈은 상기 문서의 상기 제 2 외관을 정의하는 데이터를 저장하도록 상기 브라우저를 구성하는
    방법.
  12. 제 5 항에 있어서,
    상기 브라우저에 관리 모듈을 제공하는 단계를 더 포함하고,
    상기 관리 모듈은 상기 제 2 URL이 상기 문서의 유효 상태에 대응한다는 검증을 요청하도록 상기 브라우저를 구성하는
    방법.
  13. 제 12 항에 있어서,
    상기 제 2 URL이 상기 문서의 유효 상태에 대응한다는 검증을 위한 추가 요청을 수신하는 단계 - 상기 추가 요청은 상기 브라우저가 상기 문서를 제 1 상태에서 디스플레이하는 동안 상기 브라우저로부터 수신됨 - 와,
    상기 추가 요청에 응답하여 상기 제 2 URL이 유효 상태에 대응한다는 상기 검증을 제공하는 단계를 더 포함하는
    방법.
  14. 제 5 항에 있어서,
    상기 제 2 상태의 상기 문서는 상기 문서가 상기 제 1 외관을 갖는 상기 제 1 상태를 불러오는데 사용할 수 있는 어떠한 컨트롤도 갖지 않고,
    상기 방법은,
    상기 제 1 URL이 상기 문서의 유효 상태에 대응한다는 검증을 위한 추가 요청 - 상기 추가 요청은 상기 브라우저가 상기 문서를 상기 제 2 상태에서 디스플레이하는 동안 상기 브라우저로부터 수신됨 - 을 수신하는 단계와,
    상기 추가 요청에 응답하여 상기 제 1 URL이 유효 상태에 대응한다는 상기 검증을 제공하는 단계를 더 포함하는
    방법.
  15. 제 14 항에 있어서,
    상기 추가 요청의 수신은 상기 브라우저가 상기 문서를 상기 제 1 외관을 갖는 상기 제 1 상태에서 다시 디스플레이하라는 사용자 커맨드를 실행하는 결과인
    방법.
  16. 제 14 항에 있어서,
    상기 추가 요청의 수신은 상기 브라우저가 상기 브라우저에 의해 이전에 디스플레이된 콘텐츠에 대응하는 URL의 이력(history) 내를 내비게이트(navigate)하라는 사용자 커맨드를 실행하는 결과인
    방법.
  17. 제 16 항에 있어서,
    상기 사용자 커맨드는 백 커맨드(a back command) 및 포워드 커맨드(a forward command)로 이루어지는 그룹으로부터 선택되고,
    상기 백 커맨드는 상기 URL의 이력 내에서 뒤로 내비게이트하는 것이고,
    상기 포워드 커맨드는 상기 URL의 이력 내에서 앞으로 내비게이트하는 것인
    방법.
  18. 명령어를 포함하는 비-일시적 머신-판독가능한 저장 매체로서,
    상기 명령어는 머신의 하나 이상의 프로세서에 의해 실행될 때, 상기 머신으로 하여금 동작을 수행하게 하고,
    상기 동작은,
    브라우저에서 디스플레이하기 위한 문서를 찾을 수 있는 제 1 URL(uniform resource locator)를 참조하라는 요청을 수신하는 것 - 상기 제 1 URL은 상기 문서가 제 1 외관을 갖는 제 1 상태에 대응함 - 과,
    상기 요청에 응답하여 그리고 상기 제 1 상태에 대응하는 상기 제 1 URL에 기초하여 상기 문서를 상기 제 1 외관을 갖는 상기 제 1 상태에서 상기 브라우저에 제공하는 것 - 상기 제 1 상태의 문서는 상기 문서가 제 2 외관을 갖는 제 2 상태를 불러오는데 사용할 수 있는 컨트롤을 포함함 - 과,
    상기 문서의 상기 제 2 상태를 불러오는 상기 컨트롤의 사용을 검출하는 것 - 상기 컨트롤은 상기 브라우저에서 디스플레이하기 위해 상기 문서를 찾을 수 있는 제 2 URL을 참조하고, 상기 브라우저는 상기 컨트롤의 사용에 응답하여 상기 문서를 상기 제 2 외관을 갖는 상기 제 2 상태에서 디스플레이함 - 과,
    상기 제 2 URL와 상기 문서의 상기 제 2 외관을 정의하는 데이터 간의 대응 관계를 저장함으로써 상기 문서의 상기 제 2 상태를 상기 제 2 URL에 매핑하는 것 - 상기 매핑은 상기 머신의 상기 프로세서에 의해 수행됨 - 을 포함하는
    비일시적 머신-판독가능한 저장 매체.
  19. 제 18 항에 있어서,
    상기 동작은,
    상기 브라우저로 관리 모듈을 제공하는 것을 더 포함하고,
    상기 관리 모듈은 상기 문서의 상기 제 2 외관을 정의하는 상기 데이터를 저장하도록 상기 브라우저를 구성하는
    비-일시적 머신-판독가능한 저장 매체.
  20. 제 18 항 또는 제 19 항에 있어서,
    상기 제 2 상태의 상기 문서는 상기 문서가 상기 제 1 외관을 갖는 상기 제 1 상태를 불러오는데 사용할 수 있는 어떠한 컨트롤도 갖지 않고,
    상기 동작은,
    상기 제 1 URL이 상기 문서의 유효 상태에 대응한다는 검증을 위한 추가 요청을 수신하는 것 - 상기 추가 요청은 상기 브라우저가 상기 문서를 제 2 상태에서 디스플레이하는 동안 상기 브라우저로부터 수신됨 - 과,
    상기 추가 요청에 응답하여 상기 제 1 URL이 유효 상태에 대응한다는 상기 검증을 제공하는 것을 더 포함하는
    비-일시적 머신-판독가능한 저장 매체.
KR1020157022966A 2013-01-25 2013-12-11 페이지 상태를 매핑하는 시스템 및 방법 KR101709882B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361756864P 2013-01-25 2013-01-25
US61/756,864 2013-01-25
US13/782,840 US10025760B2 (en) 2013-01-25 2013-03-01 Mapping page states to URLs
US13/782,840 2013-03-01
PCT/US2013/074474 WO2014116361A1 (en) 2013-01-25 2013-12-11 Systems and methods to map page states

Publications (2)

Publication Number Publication Date
KR20150110743A true KR20150110743A (ko) 2015-10-02
KR101709882B1 KR101709882B1 (ko) 2017-02-23

Family

ID=51224417

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157022966A KR101709882B1 (ko) 2013-01-25 2013-12-11 페이지 상태를 매핑하는 시스템 및 방법

Country Status (7)

Country Link
US (2) US10025760B2 (ko)
EP (1) EP2948866A4 (ko)
KR (1) KR101709882B1 (ko)
CN (3) CN104956361B (ko)
AU (1) AU2013375183B2 (ko)
CA (1) CA2897508C (ko)
WO (1) WO2014116361A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180116429A (ko) * 2016-03-07 2018-10-24 알리바바 그룹 홀딩 리미티드 서비스 실행 방법 및 디바이스

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10025760B2 (en) 2013-01-25 2018-07-17 Ebay Inc. Mapping page states to URLs
US10498834B2 (en) * 2015-03-30 2019-12-03 [24]7.ai, Inc. Method and apparatus for facilitating stateless representation of interaction flow states
US10432490B2 (en) * 2015-07-31 2019-10-01 Cisco Technology, Inc. Monitoring single content page application transitions
CN111290995B (zh) * 2018-12-07 2023-08-25 北京字节跳动网络技术有限公司 资源管理方法和装置
EP3742308A1 (en) * 2019-05-21 2020-11-25 Siemens Healthcare GmbH Computer-implemented method for providing cross-linking between cloud-based webapplications
CN115442664A (zh) * 2022-08-19 2022-12-06 武汉斗鱼鱼乐网络科技有限公司 一种面板视图的显示方法、装置、介质、以及电子设备
CN117112913B (zh) * 2023-10-23 2024-02-13 腾讯科技(深圳)有限公司 数据处理方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10207806A (ja) * 1996-11-18 1998-08-07 Internatl Business Mach Corp <Ibm> 複数のurlを同時にアクティブに維持できるブラウザを提供する方法及び装置
US20120110110A1 (en) * 2010-11-01 2012-05-03 Michael Luna Request and response characteristics based adaptation of distributed caching in a mobile network
US20120311428A1 (en) * 2011-05-31 2012-12-06 Ebay Inc. Document generation based on referral

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347484A (en) 1992-06-19 1994-09-13 Intel Corporation Nonvolatile memory with blocked redundant columns and corresponding content addressable memory sets
CN101286172B (zh) * 2002-09-13 2012-11-14 雅虎公司 改进的浏览器用户界面
GB2421322A (en) * 2004-07-22 2006-06-21 Barefruit Ltd User interface for an internet web browser
CN1835507A (zh) * 2005-03-17 2006-09-20 国际商业机器公司 用于用户与web浏览器交互的服务器端处理的方法与系统
US7689663B2 (en) * 2005-03-24 2010-03-30 Hewlett-Packard Development Company, L.P. Embedded web-based management method
US7949991B1 (en) * 2005-07-29 2011-05-24 Adobe Systems Incorporated Systems and methods for specifying states within imperative code
US20070220083A1 (en) * 2006-03-17 2007-09-20 Microsoft Corporation Estimation of initial dynamic rendering control data
US20080168358A1 (en) * 2007-01-08 2008-07-10 Microsoft Corporation Single-page web signup facility
US7917840B2 (en) 2007-06-05 2011-03-29 Aol Inc. Dynamic aggregation and display of contextually relevant content
KR100938024B1 (ko) 2007-07-25 2010-01-21 주식회사 하이닉스반도체 플래시 메모리 소자
US8005946B2 (en) 2007-09-10 2011-08-23 Microsoft Corporation Managing navigation history for intra-page state transitions
JP2009146548A (ja) 2007-12-18 2009-07-02 Toshiba Corp 不揮発性半導体記憶装置
KR101647144B1 (ko) * 2008-11-03 2016-08-23 삼성전자주식회사 원격 유저 인터페이스 서비스에서 리소스에 대한 제어 방법, 장치 및 그 저장 매체
US7962547B2 (en) * 2009-01-08 2011-06-14 International Business Machines Corporation Method for server-side logging of client browser state through markup language
US9436482B2 (en) * 2009-03-25 2016-09-06 Microsoft Technology Licensing, Llc Input content to application via web browser
KR101635504B1 (ko) 2009-06-19 2016-07-04 삼성전자주식회사 3차원 수직 채널 구조를 갖는 불 휘발성 메모리 장치의 프로그램 방법
US8868637B2 (en) 2009-09-02 2014-10-21 Facebook, Inc. Page rendering for dynamic web pages
WO2011109516A2 (en) 2010-03-03 2011-09-09 Ebay Inc. Document processing using retrieval path data
US9232011B2 (en) * 2010-03-26 2016-01-05 Microsoft Technology Licensing, Llc Tracking navigation flows within the same browser tab
US8812565B2 (en) * 2010-10-15 2014-08-19 Microsoft Corporation Optimizing browser caching through deterministic marking of files
US9697628B2 (en) 2011-03-18 2017-07-04 Paypal, Inc. On-demand image spriting
WO2012160499A1 (en) * 2011-05-23 2012-11-29 Strangeloop Networks, Inc. Optimized rendering of dynamic content
US8949795B2 (en) * 2012-08-23 2015-02-03 International Business Machines Corporation Generating test cases for covering enterprise rules and predicates
US10025760B2 (en) 2013-01-25 2018-07-17 Ebay Inc. Mapping page states to URLs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10207806A (ja) * 1996-11-18 1998-08-07 Internatl Business Mach Corp <Ibm> 複数のurlを同時にアクティブに維持できるブラウザを提供する方法及び装置
US20120110110A1 (en) * 2010-11-01 2012-05-03 Michael Luna Request and response characteristics based adaptation of distributed caching in a mobile network
US20120311428A1 (en) * 2011-05-31 2012-12-06 Ebay Inc. Document generation based on referral

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180116429A (ko) * 2016-03-07 2018-10-24 알리바바 그룹 홀딩 리미티드 서비스 실행 방법 및 디바이스
US11347825B2 (en) 2016-03-07 2022-05-31 Advanced New Technologies Co., Ltd. Service execution method and device
US11755679B2 (en) 2016-03-07 2023-09-12 Advanced New Technologies Co., Ltd. Service execution method and device

Also Published As

Publication number Publication date
CN110083781B (zh) 2023-04-28
CN110096656A (zh) 2019-08-06
CA2897508C (en) 2018-07-31
EP2948866A1 (en) 2015-12-02
AU2013375183A1 (en) 2015-07-30
US10025760B2 (en) 2018-07-17
EP2948866A4 (en) 2016-08-31
AU2013375183B2 (en) 2016-11-10
US20180314677A1 (en) 2018-11-01
CN110096656B (zh) 2023-02-17
CN104956361B (zh) 2019-02-19
CN104956361A (zh) 2015-09-30
CN110083781A (zh) 2019-08-02
CA2897508A1 (en) 2014-07-31
WO2014116361A1 (en) 2014-07-31
US20140215316A1 (en) 2014-07-31
KR101709882B1 (ko) 2017-02-23

Similar Documents

Publication Publication Date Title
KR101709882B1 (ko) 페이지 상태를 매핑하는 시스템 및 방법
US10667101B2 (en) Contextual deep linking of applications
US20190349415A1 (en) Maintaining independent states for multiple web browser instances
US10037713B2 (en) System and method for providing additional content on a webpage
US9497248B2 (en) System for enabling rich network applications
US20110302288A1 (en) Enhanced Browser Cookie Management
US20120254721A1 (en) Methods and systems for generating and displaying a preview image of a content area
US20140281859A1 (en) Enhanced mobilization of existing web sites
WO2018001124A1 (zh) 网页文件发送方法、网页渲染方法及装置、网页渲染系统
US9697628B2 (en) On-demand image spriting
US20160062603A1 (en) Systems and methods for self-learning dynamic interfaces
US11204925B2 (en) Enabling data source extensions
JP2015518612A (ja) リモートメソッド呼出しによる複数かつ異種のウェブページのスタイリング及び装飾を可能にするコンピュータシステム、非一時的コンピュータ可読記憶媒体及び方法
AU2014348888B2 (en) Presentation of digital content listings
CN110992131B (zh) 一种表单处理方法、装置及存储介质
US11288336B2 (en) Systems and methods for providing content items in situations involving suboptimal network conditions
US8577832B2 (en) System, method, circuit and associated software for locating and/or uploading data objects
US10049125B2 (en) Methods, apparatuses, and computer program products for identifying fields in a data tree
US10909209B2 (en) Dynamic insertion of content into webpages
JP2017220099A (ja) Webページにおけるユーザの閲覧行動情報をネットワークを介して取得するシステム
JP5602323B2 (ja) コンテンツ表示方法、サーバ装置、プログラム及び記憶媒体
CN113966506A (zh) 提供统一资源定位符预览

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 4