KR20180066280A - 검색 결과에 대한 액세스를 향상시키기 위한 시스템 및 방법 - Google Patents

검색 결과에 대한 액세스를 향상시키기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20180066280A
KR20180066280A KR1020187016198A KR20187016198A KR20180066280A KR 20180066280 A KR20180066280 A KR 20180066280A KR 1020187016198 A KR1020187016198 A KR 1020187016198A KR 20187016198 A KR20187016198 A KR 20187016198A KR 20180066280 A KR20180066280 A KR 20180066280A
Authority
KR
South Korea
Prior art keywords
rendering
search result
search
page
search results
Prior art date
Application number
KR1020187016198A
Other languages
English (en)
Other versions
KR101891488B1 (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 KR20180066280A publication Critical patent/KR20180066280A/ko
Application granted granted Critical
Publication of KR101891488B1 publication Critical patent/KR101891488B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • 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/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • 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/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results
    • G06F17/30442
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3325Reformulation based on results of preceding query
    • G06F16/3326Reformulation based on results of preceding query using relevance feedback from the user, e.g. relevance feedback on documents, documents sets, document terms or passages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3325Reformulation based on results of preceding query
    • G06F16/3326Reformulation based on results of preceding query using relevance feedback from the user, e.g. relevance feedback on documents, documents sets, document terms or passages
    • G06F16/3328Reformulation based on results of preceding query using relevance feedback from the user, e.g. relevance feedback on documents, documents sets, document terms or passages using graphical result space presentation or visualisation
    • 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/903Querying
    • G06F16/9032Query formulation
    • G06F16/90324Query formulation using system suggestions
    • 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/93Document management systems
    • 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/951Indexing; Web crawling techniques
    • 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/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F17/20
    • G06F17/277
    • G06F17/30011
    • G06F17/30312
    • G06F17/30522
    • G06F17/30648
    • G06F17/30651
    • G06F17/30867
    • 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
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 개시내용의 실시형태들은 검색 결과 페이지들의 프리렌더링을 위한 시스템(100) 및 방법(300)을 제공한다. 검색 엔진은 클라이언트로부터 수신된 검색 쿼리들을 프로세싱할 수 있다. 검색 엔진은 검색 쿼리에 응답하여 하나 이상의 검색 결과들을 결정할 수 있다(302). 검색 결과들 중 하나 이상의 검색 결과는 프리렌더링 명령들과 관련될 수 있고(900), 이에 따라 검색 결과들이 클라이언트에 의해 수신되는 경우, 클라이언트는 프리렌더링 명령들과 관련된 검색 결과들을 프리렌더링하게 된다(400). 프리렌더링 명령들은 다양한 방식으로 검색 결과들과 관련될 수 있는바, 여기에는 관련성에 근거하여 검색 결과들의 순위를 정하는 것(700) 혹은 선택의 가능성에 근거하여 검색 결과들의 순위를 정하는 것(800)이 포함된다. 검색 결과 프리렌더링 프로세스를 향상시키기 위해 클라이언트로부터 지표 및 분석 데이터가 수집될 수 있다(100).

Description

검색 결과에 대한 액세스를 향상시키기 위한 시스템 및 방법{SYSTEM AND METHOD FOR IMPROVING ACCESS TO SEARCH RESULTS}
관련 출원들에 대한 상호-참조
본 출원은 미국 특허 출원번호 제13/353,626호(발명의 명칭: "System And Method For Improving Access To Search Results", 출원일: 2012년 1월 19일)에 대한 우선권 혜택을 주장하는바, 그 개시내용은 참조로 본 명세서에 통합된다.
월드 와이드 웹(World Wide Web)의 출현으로 오늘날의 사용자들의 손끝(fingertips)에는 과거 그 어느 때보다도 많은 정보가 제공되고 있다. 다양한 웹사이트(websites)들은 거의 모든 필요 및 관심을 충족시키고 있으며, 레퍼런스 정보(reference information), 비즈니스(business) 및 금융 문서(financial documents), 소셜 네트워킹(social networking) 등에 대한 액세스를 제공하고 있다. 광범위한 브로드밴드 인터넷 액세스(broadband Internet access)는 과거 그 어느 때보다도 이러한 사이트(site)들에 대한 더 빠른 액세스를 제공한다.
그러나, 현재의 고속 인터넷 서비스들이 빨라지는 만큼, 해당 웹을 브라우징(browsing)하는 동작은 즉각적이지 않다. 사용자가 페이지(page) 상에 링크(link)를 선택하는 경우 혹은 사용자가 텍스트 필드(text field)에 유니폼 리소스 로케이터(Uniform Resource Locator, URL)를 입력하는 경우, 데이터가 호스트(host)로부터 요청되고, 클라이언트(client)에 전송되고, 브라우저(browser)에 렌더링(rendering)되는 동안 지연(delay)이 존재한다. 전형적으로 사용자는 자신의 요청된 사이트가 로드(load)되기를 기다리는 동안 아이들(idle) 상태에 있게 된다. 고속 인터넷 액세스가 이러한 지연을 수 초로 제한할 수 있지만, 심지어 이러한 짧은 지연도 결국에는 매년 생산성 손실(lost productivity)을 일으키는 수천 개의 근로 시간들(man-hours)이 될 수 있다.
미국 등록특허공보 제7747749호 (2010. 06. 29)
본 개시내용의 실시형태들은 검색 결과 페이지(search result page)들의 프리렌더링(prerendering)을 위한 시스템 및 방법을 제공한다. 인터넷 검색 엔진(Internet search engine)은 클라이언트로부터 수신된 검색 쿼리들(search queries)을 프로세싱할 수 있다. 인터넷 검색 엔진은 검색 쿼리에 응답하여 하나 이상의 검색 결과들을 결정할 수 있다. 검색 결과들 중 하나 이상의 검색 결과는 프리렌더링 명령(prerender instruction)들과 관련될 수 있고, 이에 따라 검색 결과들이 클라이언트에 의해 수신될 때 클라이언트는 프리렌더링 명령들과 관련된 검색 결과들을 프리렌더링하게 된다. 프리렌더링 명령들은 다양한 방식으로 검색 결과들과 관련될 수 있는바, 여기에는 관련성(relevance)에 근거하여 검색 결과들의 순위를 정하는 것 혹은 선택의 가능성(likelihood)에 근거하여 검색 결과들의 순위를 정하는 것이 포함된다. 검색 결과 프리렌더링 프로세스를 향상시키기 위해 클라이언트로부터 지표(metrics) 및 분석 데이터(analytical data)가 수집될 수 있다. 예를 들어, 사용자가 프리렌더링 명령과 관련된 링크를 선택했는지 선택하지 않았는지와 관련된 통계자료가 프리렌더링 예측(prerender predictions)을 향상시키기 위해 획득될 수 있다.
지표 및 분석 데이터는 사용자에게 상기 지표 및 분석 데이터의 제공에 "참여(opt-in)"하도록 요구하는 프로세스를 통해 획득될 수 있다. 본 시스템 및 방법은 클라이언트 데이터에 대한 프라이버시 보호(privacy protections)를 제공할 수 있는바, 여기에는 예를 들어, 개인적으로 식별가능한 정보의 익명화(anonymization), 데이터의 집합(aggregation), 민감한 정보의 필터링(filtering), 암호화, 개인의 특성들을 제거하기 위한 민감한 정보의 해싱(hashing) 혹은 필터링, 정보의 저장에 관한 시간 제한, 그리고/또는 데이터 사용 혹은 공유에 관한 제한이 포함된다. 개개의 클라이언트 데이터가 드러나지 않도록 데이터는 익명화될 수 있고 집합될 수 있다. 사용자는 또한, 데이터의 수집 및 공유를 할 수 있는 것에 대해 참여/탈퇴(opt in/out)할 기회를 제공받을 수 있다.
본 개시내용의 실시형태들은, 컴퓨터로 구현되는, 검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 방법을 설명한다. 본 방법은, 검색 쿼리에 응답하여 적어도 하나의 검색 결과를 프로세서를 사용하여 결정하는 단계와, 적어도 하나의 검색 결과를 포함하는 검색 결과 페이지를 발생시키는 단계와, 적어도 하나의 검색 결과 중에서 적어도 하나의 프리렌더링 후보(prerender candidate)를 식별하는 단계와(여기서 적어도 하나의 프리렌더링 후보는 선택될 가능성이 있는 검색 결과를 표시함), 검색 결과 페이지 내에 적어도 하나의 프리렌더링 후보에 대한 프리렌더링 명령들을 내장(embed)시키는 단계와, 그리고 검색 쿼리를 제공한 클라이언트 디바이스(client device)에게 검색 결과 페이지를 제공하는 단계를 포함할 수 있다. 적어도 하나의 프리렌더링 후보는 적어도 하나의 신호(signal)를 사용하여 식별될 수 있고, 여기서 적어도 하나의 신호는, 검색 결과가 선택되는 빈도(frequency)이거나, 검색 엔진으로부터 검색 결과로 흐르는 트래픽(traffic)의 양(amount)이거나, 클라이언트 디바이스의 위치이거나, 혹은 검색 결과와 관련된 하나 이상의 리소스(resource)들의 크기(size)이다. 프리렌더링 명령들은 적어도 하나의 검색 결과와 관련된 하이퍼텍스트 마크업 언어 태그(hypertext markup language tag) 내에 내장될 수 있다. 프리렌더링 명령들은 클라이언트측 스크립팅(client side scripting)을 통해 클라이언트 디바이스에 제공될 수 있다. 본 방법은 또한, 프리렌더링 후보가, 디스플레이될 때 선택되었는지 여부를 표시하는 지표를 클라이언트 디바이스로부터 수신하는 단계와, 그리고 후속하는 검색 쿼리들에 응답하여 장래의 프리렌더링 후보들을 식별하기 위해 이러한 지표를 사용하는 단계를 포함할 수 있다. 여기서 지표는, 선택된 링크가 프리렌더링되었는지 여부 혹은 그 선택된 링크의 로드 시간(load time) 중 적어도 하나일 수 있다. 본 방법은 또한, 검색 결과 페이지 내에 실험 식별자(experiment identifier)를 내장시키는 단계와(여기서, 실험 식별자는 적어도 하나의 프리렌더링 후보를 식별하기 위해 사용되는 특정 방법에 대응함), 그리고 선택 동작과 관련된 실험 식별자를 식별하기 위해 그리고 적어도 하나의 프리렌더링 후보가 선택되었는지 여부를 식별하기 위해, 검색 결과 페이지와 관련된 하나 이상의 리다이렉션 동작(redirection operation)들을 사용하는 단계를 포함할 수 있다.
본 개시내용의 실시형태들은 또한, 컴퓨터로 구현되는, 검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 방법을 설명한다. 본 방법은, 검색 쿼리를 검색 엔진에 전송하는 단계와, 검색 쿼리에 응답하여 검색 결과들의 세트를 수신하는 단계와(여기서, 검색 결과들의 세트는 검색 결과들 중 적어도 하나의 검색 결과가 프리렌더링을 위한 후보임을 표시하는 적어도 하나의 프리렌더링 명령을 포함함), 적어도 하나의 프리렌더링 명령을 식별하는 단계와, 그리고 적어도 하나의 프리렌더링 명령과 관련된 적어도 하나의 검색 결과를 프리렌더링하는 단계를 포함할 수 있다. 본 방법은 또한, 검색 결과들의 세트로부터의 선택된 검색 결과에 수행되는 선택 동작에 대해 모니터링(monitoring)하는 단계와, 그리고 만약 선택된 검색 결과가 앞서의 적어도 하나의 검색 결과라면 이러한 적어도 하나의 검색 결과를 활성 브라우저 인스턴스(active browser instance)로 스와핑(swapping)시키는 단계를 포함할 수 있다. 본 방법은 검색 결과의 세트로부터의 선택된 검색 결과의 선택과 관련된 지표를 저장하는 단계와, 그리고 후속하는 검색 쿼리들에 응답하여 프리렌더링 후보들의 선택을 향상시키기 위한 통계 데이터(statistical data)를 제공하기 위해 이러한 지표를 전송하는 단계를 포함할 수 있다. 여기서 지표는, 선택된 검색 결과, 선택된 검색 결과가 앞서의 적어도 하나의 검색 결과인지 여부, 그리고 선택된 검색 결과에 액세스하기 위한 페이지 로드 시간 중 적어도 하나 일 수 있다. 본 방법은 또한, 적어도 하나의 검색 결과와 관련된 하이퍼링크에 프리렌더링 태그(prerender tag)를 삽입하기 위해 프리렌더링 명령을 실행시키는 단계를 포함할 수 있다. 지표는 또한, 검색 결과들의 세트에 내장되는 실험 식별자를 포함할 수 있고, 여기서 실험 식별자는 프리렌더링을 위한 후보로서 검색 결과들 중 적어도 하나의 검색 결과를 선택하기 위한 방법을 표시한다.
본 발명의 개시내용의 실시형태들은, 명령들을 포함하는 비-일시적 컴퓨터 판독가능 저장 매체(non-transitory computer readable storage medium)를 제공할 수 있다. 이러한 명령들은 프로세서에 의해 실행될 때, 검색 쿼리를 검색 엔진에 전송하는 단계와, 검색 쿼리에 응답하여 검색 결과들의 세트를 수신하는 단계와(여기서, 검색 결과들의 세트는 검색 결과들 중 적어도 하나의 검색 결과가 프리렌더링을 위한 후보임을 표시하는 적어도 하나의 프리렌더링 명령을 포함함), 적어도 하나의 프리렌더링 명령을 식별하는 단계와, 그리고 적어도 하나의 프리렌더링 명령과 관련된 적어도 하나의 검색 결과를 프리렌더링하는 단계를 포함하는 방법을 수행할 수 있다. 이러한 명령들은, 검색 결과들의 세트로부터의 선택된 검색 결과에 수행되는 선택 동작에 대해 모니터링하는 것, 그리고 만약 선택된 검색 결과가 앞서의 적어도 하나의 검색 결과라면 이러한 적어도 하나의 검색 결과를 활성 브라우저 인스턴스로 스와핑시키는 것을 포함할 수 있다. 명령들은, 검색 결과의 세트로부터의 선택된 검색 결과의 선택과 관련된 지표를 저장하는 것, 그리고 후속하는 검색 쿼리들에 응답하여 프리렌더링 후보들의 선택을 향상시키기 위한 통계 데이터를 제공하기 위해 이러한 지표를 전송하는 것을 포함할 수 있다. 여기서 지표는, 선택된 검색 결과, 선택된 검색 결과가 앞서의 적어도 하나의 검색 결과인지 여부, 그리고 선택된 검색 결과에 액세스하기 위한 페이지 로드 시간 중 적어도 하나일 수 있다. 지표는 또한, 검색 결과들의 세트 내에 내장되는 실험 식별자를 포함할 수 있고, 여기서 실험 식별자는 프리렌더링을 위한 후보로서 검색 결과들 중 적어도 하나의 검색 결과를 선택하기 위한 방법을 표시한다.
본 개시내용의 실시형태들은, 검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 프로세싱 시스템을 제공할 수 있다. 이러한 프로세싱 시스템은, 적어도 하나의 프로세서와 그리고 이러한 적어도 하나의 프로세서에 결합되는 메모리를 포함할 수 있다. 여기서 프로세서는, 검색 쿼리에 응답하여 적어도 하나의 검색 결과를 결정하고, 검색 결과 페이지를 발생시키고(여기서 검색 결과 페이지는 적어도 하나의 검색 결과를 포함함), 적어도 하나의 검색 결과 중에서 적어도 하나의 프리렌더링 후보를 식별하고(여기서, 적어도 하나의 프리렌더링 후보는 선택될 가능성이 있는 검색 결과를 표시함), 검색 결과 페이지 내에 적어도 하나의 프리렌더링 후보에 대한 프리렌더링 명령들을 내장시키고, 그리고 검색 쿼리를 제공한 클라이언트 디바이스에게 검색 결과 페이지를 제공하도록 구성될 수 있다. 적어도 하나의 프리렌더링 후보는 적어도 하나의 신호를 사용하여 식별될 수 있고, 여기서 적어도 하나의 신호는, 검색 결과가 선택되는 빈도이거나, 검색 엔진으로부터 검색 결과로 흐르는 트래픽의 양이거나, 클라이언트 디바이스의 위치이거나, 혹은 검색 결과와 관련된 하나 이상의 리소스들의 크기이다. 프리렌더링 명령들은 적어도 하나의 검색 결과와 관련된 하이퍼텍스트 마크업 언어 태그 내에 내장될 수 있다. 프리렌더링 명령들은 클라이언트측 스크립팅을 통해 클라이언트 디바이스에 제공될 수 있다. 프로세서는 또한, 프리렌더링 후보가, 디스플레이될 때 선택되었는지 여부를 표시하는 지표를 클라이언트 디바이스로부터 수신하고, 그리고 후속하는 검색 쿼리들에 응답하여 장래의 프리렌더링 후보들을 식별하기 위해 이러한 지표를 사용하도록 구성될 수 있다. 여기서 지표는, 선택된 링크가 프리렌더링되었는지 여부 혹은 선택된 링크의 로드 시간 중 적어도 하나일 수 있다. 프로세서는 또한, 검색 결과 페이지 내에 실험 식별자를 내장시키고(여기서, 실험 식별자는 적어도 하나의 프리렌더링 후보를 식별하기 위해 사용되는 특정 방법에 대응함), 그리고 선택 동작과 관련된 실험 식별자를 식별하기 위해 그리고 적어도 하나의 프리렌더링 후보가 선택되었는지 여부를 식별하기 위해, 검색 결과 페이지와 관련된 하나 이상의 리다이렉션 동작들을 사용하도록 구성될 수 있다.
도 1은 본 개시내용의 실시형태들에 따른, 프리렌더링을 제공하는 검색 시스템의 예를 도시한 시스템 도면이다.
도 2는 본 개시내용의 실시형태들에 따른, 프리렌더링 명령들을 사용하는 검색 결과 페이지의 예를 나타낸 도면이다.
도 3은 본 개시내용의 실시형태들에 따른, 웹 페이지를 프리렌더링하기 위한 방법의 예를 도시한 흐름도이다.
도 4는 본 개시내용의 실시형태들에 따른, 프리렌더링될 네비게이션 이벤트(navigation event)를 표시하기 위한 방법의 예를 도시한 흐름도이다.
도 5는 본 개시내용의 실시형태들에 따른 프리렌더링 동작 동안 웹 노출 통계자료(web impression statistics)를 관리하기 위한 방법의 예를 도시한 흐름도이다.
도 6은 본 개시내용의 실시형태들에 따른, 프리렌더링 동작을 관리하기 위한 방법의 예를 도시한 흐름도이다.
도 7은 본 개시내용의 실시형태들에 따른, 프리렌더링 동작을 구성하기 위한 방법의 예를 도시한 흐름도이다.
도 8은 본 개시내용의 실시형태들에 따른, 검색 결과 페이지 내에 내장된 프리렌더링 명령들을 프로세싱하기 위한 방법의 예를 도시한 흐름도이다.
도 9는 본 개시내용의 실시형태들에 따른, 프리렌더링 명령들을 검색 결과 페이지 내에 내장시키기 위한 방법의 예를 도시한 흐름도이다.
도 10은 본 개시내용의 실시형태들에 따른, 프리렌더링 지표를 획득하기 위한 방법의 예를 도시한 흐름도이다.
본 개시내용의 실시형태들, 특징들 및 장점들은 다음에 제공되는 바람직한 실시예들의 설명 및 첨부되는 도면을 참조하여 고려되는 경우 이해될 것이다. 다음의 설명은 본 개시내용을 한정시키는 것이 아니며, 오히려 본 발명의 범위는 본 명세서에 첨부되는 특허청구범위 및 그 등가 범위에 의해 정의된다.
예시적인 실시예들에 따른 특정 프로세스들이 도면에서 선형으로 일어나는 것으로 제시되고 있지만, 이러한 것은 본 명세서에서 명시적으로 기재되지 않는 한 본 발명의 요건이 아니다. 이와는 다른 프로세스들이 다양한 순서로 혹은 동시에 수행될 수 있다.
본 개시내용은 프리렌더링 명령들을 갖는 검색 결과 페이지들을 제공하기 위한 시스템들 및 방법들을 설명한다. 본 개시내용의 실시형태들은, 사용자에 의한 네비게이션 이벤트(navigation event)(예를 들어, 검색 결과 하이퍼링크(search result hyperlink) 상에서의 클릭킹(clicking))의 선택과 그 네비게이션 이벤트와 관련된 콘텐츠(content)의 디스플레이 간의 지연을, 사용자에 의한 네비게이션 이벤트의 선택 이전에 네비게이션 이벤트와 관련된 콘텐츠를 프리렌더링함으로써, 최소화시킨다. 예를 들어, 본 방법 및 시스템은, 네트워크로부터 콘텐츠를 우선적으로(preemptively) 요청하기 위해 웹 브라우징 동안 임의의 가능성 있는 다음 유니폼 리소스 로케이터(URL)를 예측할 수 있는바, 이러한 예측은 사용자가 대응하는 링크를 선택하기 전에 일어나고, 이에 따라, 사용자가 웹 페이지 상에서 하이퍼링크를 선택할 때 대기 시간을 최소화시키게 된다. 프리렌더링 동작을 수행하는 것, 프리렌더링 동작을 구성하는 것, 그리고 프리렌더링 동작을 관리하는 것에 관한 다양한 방법들이 설명된다. 본 명세서에서의 이러한 응용의 설명 목적으로, 용어 "프리렌더링(prerendering)"은 일반적, 웹 어드레스(web address)의 콘텐츠를 로드하기 위해 필요한 리소스들(예를 들어, 임의의 실행가능한 코드, 스크립팅 언어(scripting language), 파일들(files) 및/또는 상호대화형 오브젝트들(interactive objects))을 요청하기 위한 동작, 그리고 웹 브라우저 인스턴스(web browser instance)에서의 콘텐츠를 로드하기 위한 동작을 말한다. 프리렌더링은 임의의 페이지를 렌더링하는 프로세스를 포함하는바, 여기에는 스크립트(script)들을 해석(interpreting)하는 것, 페이지의 레이 아웃(lay out)을 정하는 것, 그리고 이것을 눈에 보이지 않는 브라우저 인스턴스(invisible browser instance)에서 렌더링하는 것이 포함된다.
사용자가 인터넷 검색 엔진을 사용하여 브라우저 내에서 검색 쿼리를 수행하는 경우, 인터넷 검색 엔진은 검색 쿼리에 응답하여 제공된 검색 결과들 중 하나 이상의 검색 결과를 프리렌더링 명령들로 플래그(flag)할 수 있다. 이러한 프리렌더링 명령들은 (예를 들어, 페이지 소스(page source) 내의 하이퍼텍스트 마크업 언어(HyperText Markup Language)(HTML) 태그들을 통해) 웹 페이지 자체 내에 내장될 수 있거나, 혹은 또 다른 방식으로, 예컨대 비동기형 자바스크립트(Asynchronous JAVASCRIPT)(AJAX)를 통해, 브라우저에 표시될 수 있다. 웹 브라우저에 관하여 다양한 예시적 실시예들이 설명되지만, 용어 "브라우저(browser)"는 인터넷 어드레스들을 사용하여 콘텐츠를 페치(fetch)하는 임의의 애플리케이션을 또한 포함하는 것으로 광범위하게 해석될 수 있다. 예를 들어, 브라우저는. 스마트폰 상에서 실행되는 애플리케이션, 랩탑 혹은 데스크탑 컴퓨터 상에서 실행되는 인터넷 검색 엔진을 디스플레이하는 웹 브라우저, 웹 브라우저 내에 통합되어 있는 검색 툴바(search toolbar), 컴퓨터 오퍼레이팅 시스템(computer operating system) 내에 포함된 검색 애플리케이션 등일 수 있다.
인터넷 검색 엔진들과 같은 트래픽이 높은 사이트들은 프리렌더링를 행할 때 고유한 문제들을 가질 수 있다. 예를 들어, 만약 검색 엔진이 인기 검색 쿼리(popular search query)에 대한 검색 결과를 좋은 프리렌더링 후보로서 잘못 라벨링(mislabelling)하고 하지만 사용자들이 그 검색 결과를 빈번하게 선택하지 않는다면, 그 잘못 라벨링된 검색 결과를 호스팅(hosting)하는 웹 서버는 추가적인 페이지 뷰(page views) 없이 추가적인 트래픽을 겪게 될 것이다. 이것은 결과적으로, 프리렌더링된 페이지가 네트워크를 통해 다운로드되고, 숨겨진 브라우저 인스턴스에서 실행되기 때문에, 호스팅 페이지(hosting page)에 대한 대역폭을 낭비시킬 수 있으며, 사용자의 컴퓨터에 대한 시스템 리소스들을 낭비시킬 수 있다. 이에 따라, 프리렌더링 동작들과 관련될 링크들의 선택을 향상시킬 때 사용하기 위한 시스템 지표(system metrics)를 모니터링하는 것이 바람직하다. 본 시스템 및 방법의 실시형태들은, 프리렌더링 경험을 향상시킬 목적으로 자발적 데이터 수집에 참여한 클라이언트들에 의해 제공되는 데이터를 사용하여 이러한 지표 모니터링 기능들을 제공할 수 있다.
도 1은 본 개시내용의 실시형태들에 따른, 단독으로 사용될 수 있거나 혹은 네트워크화된 구성으로 사용될 수 있는 다양한 컴퓨팅 디바이스(computing device)들을 도시하는 컴퓨터 시스템의 개략적 도면을 제시한다. 예를 들어, 본 도면은 네트워크(106)를 통해 통신하는 클라이언트 디바이스(102)와 서버(104)를 갖는 컴퓨터 네트워크(100)를 예시한다. 클라이언트 디바이스(102)는 검색 쿼리를 사용하여 검색 동작을 개시시키기 위해 사용자로 하여금 검색 쿼리를 제출하도록 할 수 있다. 서버(104)는 검색 쿼리를 수신하고, 검색 쿼리를 사용하여 검색 동작을 수행한다. 서버(104)는 또한, 검색 쿼리에 응답하여 하나 이상의 프리렌더링 명령들을 사용자에게 제공되는 검색 결과들과 관련시킬 수 있다.
클라이언트 디바이스(102)는 본 발명의 기술분야에서 알려진 바와 같은 컴퓨팅 디바이스일 수 있다. 예를 들어, 클라이언트 디바이스(102)는 랩탑 컴퓨터(laptop computer), 데스크탑 컴퓨터(desktop computer), 넷북(netbook), 랙-장착 서버(rack-mounted server), 스마트폰(smartphone), 셀률러 전화기(cellular phone), 혹은 명령들을 실행시키기 위한 프로그래밍가능한 하드웨어 혹은 소프트웨어를 포함하는 임의의 다른 디바이스일 수 있다. 컴퓨팅 디바이스(102)는 프로세서(108), 메모리(110), 그리고 범용 컴퓨터들 내에 전형적으로 존재하는 다른 컴포넌트들을 포함할 수 있다. 메모리(110)는 프로세서(108)에 의해 액세스가능한 명령들(112) 및 데이터(114)를 저장할 수 있다. 프로세서(108)는 클라이언트 디바이스(102)의 동작들을 제어하기 위해 명령들(112)을 실행시킬 수 있고 데이터(114)에 액세스할 수 있다.
프로세서(108)는 임의의 적절한 프로세서(예를 들어, 다양한 상업적으로 이용가능한 범용 프로세서들)일 수 있다. 대안적으로, 프로세서(108)는 애플리케이션-특정 집적 회로(Application-specific Integrated Circuit)("ASIC") 혹은 현장-프로그래밍가능 게이터 어레이(Field-Programmable Gate Array)("FPGA")와 같은 전용 제어기일 수 있다.
메모리(110)는, 프로세서(108)에 의해 액세스가능한 정보를 저장하도록 동작가능한 임의 타입의 유형의 메모리일 수 있는바, 여기에는 컴퓨터-판독가능 매체(computer-readable medium), 혹은 전자 디바이스의 도움을 받아 판독될 수 있는 데이터를 저장하는 다른 매체(예컨대, 하드-드라이브(hard-drive), 메모리 카드(memory card), 판독-전용 메모리(Read-Only Memory)("ROM"), 랜덤 액세스 메메모리(Radom Access Memory)("RAM"), 디지털 다용도 디스크(Digital Versatile Disc)("DVD") 혹은 다른 광학 디스크들)가 포함되고, 뿐만 아니라, 다른 기입-가능 판독-전용 메모리들(write-capable and read-only memories)일 수 있다. 본 시스템 및 방법은 앞서 제시된 것들의 다양한 조합들을 포함할 수 있고, 이에 따라 명령들 및 데이터의 상이한 부분들은 상이한 타입의 매체들 상에 저장되게 된다.
도 1에서는 프로세서(108)와 메모리(110) 각각이 기능적으로 단일 블록 내에 각각 있는 것으로 예시되고 있지만, 실제로는, 프로세서(108)와 메모리(110)는 동일한 물리적 하우징(housing) 내에 수용될 수 있거나 혹은 수용되지 않을 수 있는 복수의 프로세서들 및 메모리들을 포함함을 이해해야 한다. 따라서, 본 명세서에서의 프로세서, 컴퓨터, 혹은 메모리에 대한 언급은 병렬로 동작될 수 있거나 혹은 동작되지 않을 수 있는 프로세서들, 컴퓨터들, 혹은 메모리들의 집합체에 대한 언급을 포함하는 것으로 이해될 수 있을 것이다.
명령들(112)은 프로세서(108)에 의해 직접적으로 실행될 명령들(예를 들어, 기계어 코드(machine code))의 임의의 세트일 수 있거나, 혹은 간접적으로 실행될 명령들(예를 들어, 스크립들)의 임의의 세트일 수 있다. 예를 들어, 명령들(112)은 컴퓨터 코드(computer code)로서 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium) 상에 저장될 수 있다. 이와 관련하여, 용어 "명령들(instructions)" 및 "프로그램들(programs)"은 본 명세서에서 교환가능하게 사용될 수 있다. 명령들(112)은, 프로세서(108)에 의해 직접적으로 프로세싱될 수 있는 오브젝트 코드 포맷(object code format)으로 저장될 수 있거나, 또는 요구가 있을 때 해석되거나 혹은 미리 컴파일링(compiling)되는 독립형 소스 코드 모듈들(independent source code modules)의 집합체 혹은 스크립들을 포함하는 임의의 다른 컴퓨터 언어로 저장될 수 있다. 이러한 명령들의 기능들, 방법들, 및 루틴(routine)들은 아래에서 더 상세히 설명된다(도 2 내지 도 10 참조).
클라이언트 디바이스(102)의 동작들을 용이하게 하기 위해, 명령들(112)은 브라우저(116)를 포함할 수 있다. 브라우저(116)는 임의의 인터페이스(interface)를 제공하는바, 이러한 인터페이스에 의해 클라이언트 디바이스(102)는 검색 동작을 수행할 수 있으며, 검색 결과들을 수신할 수 있다(예컨대, 웹 브라우저가 인터넷 검색 엔진 랜딩 페이지(Internet search engine landing page)를 렌더링하는 것과 같은 것). 브라우저(116)는 검색 쿼리에 응답하여 수신된 검색 결과들을 웹 검색 결과 페이지(118) 내에 렌더링하는 기능을 수행할 수 있다. 브라우저(116)는 또한, 만약 사용자가 프리렌더링된 페이지(122)와 관련된 네비게이션 동작을 선택한다면, 인스턴트 네비게이션(instant navigation)을 허용할 수 있게 그 프리렌더링된 페이지(122)를 프리렌더링하도록 동작할 수 있다. 브라우저(116)는 또한, 브라우저(116)에 의해 수행되는 디스플레이 및 네비게이션 동작들과 관련된 지표(120)를 추적할 수 있다. 앞서 설명된 바와 같이, 브라우저(116)에 의해 수집된 임의의 지표(120)는 사용자 프라이버시 및 익명성을 유지시키기에 알맞게 보호하여 익명으로 유지된다. 앞서 설명된 바와 같이, 브라우저(116)는, 검색 결과들을 수신하고 상기 검색 결과들을 사용자에게 디스플레이하기에 적합한 임의의 애플리케이션일 수 있다. 브라우저(116)는 브라우저 탭(browser tab)들과 같은 다양한 인스턴스들 내에 콘텐츠의 복수의 세트들을 유지시킬 수 있다. 프리렌더링은, 프리렌더링된 페이지(122)를 사용자에게는 보이지 않는 브라우저 인스턴스 내에서 렌더링함으로써, 그리고 프리렌더링된 페이지(122)와 관련된 네비게이션 동작의 선택시, 눈에 보이지 않은 브라우저 인스턴스를 눈에 보이는 브라우저 인스턴스로 스와핑시킴으로써, 수행될 수 있다.
데이터(114)는 명령들에 따라 프로세서(108)에 의해 검색, 저장, 혹은 수정될 수 있다. 예를 들어, 비록 임의의 특정 데이터 구조에 의해 아키텍처(architecture)가 한정되는 것은 아니지만, 데이터는, 복수의 상이한 필드(field)들 및 레코드(record)들을 갖는 테이블(table), 확장가능한 마크업 언어(Extensible Markup Language)("XML") 문서들 혹은 플랫 파일(flat file)로서 관계형 데이터베이스에서 컴퓨터 레지스터(computer registers)에 저장될 수 있다. 데이터는 또한, 바이너리 값(binary value)들 혹은 유니코드(Unicode)와 같은(그러나 이러한 것으로만 한정되는 것은 아님) 임의의 컴퓨터 판독가능 포맷으로 포맷될 수 있다. 데이터는 관련 정보를 식별하기에 충분한 임의의 정보를 포함할 수 있는바, 예를 들어, 숫자(number)들, 설명 텍스트(descriptive text), 독점 코드(proprietary code)들, 동일한 메모리 혹은 상이한 메모리들(여기에는 다른 네트워크 위치들이 포함됨)의 다른 영역들에 저장된 데이터의 참조(reference)들과 같은 것, 또는 관련 데이터를 계산하기 위해 함수에 의해 사용되는 정보를 포함할 수 있다.
데이터(114)는 앞서 설명된 바와 같이, 웹 검색 결과 페이지(118), 지표(120), 및 프리렌더링된 페이지(122)를 저장할 수 있다. 웹 검색 결과 페이지(118) 및 프리렌더링된 페이지(122)는 브라우저(116)와 관련된 브라우저 인스턴스들 내에 렌더링된 페이지들로서 저장될 수 있다. 지표(120)는 국지적으로 저장될 수 있고 서버(104)에 주기적으로 전송될 수 있으며, 또는 직접적으로 서버(104) 상에서 계산 및 저장될 수 있다.
서버(104)는 클라이언트 디바이스(102)에 의해 제공되는 검색 쿼리를 사용하여 검색 동작들을 수행하는 기능을 행할 수 있다. 서버(104)는 또한, 클라이언트 디바이스(102)에 제공되는 검색 결과 웹 페이지 내에 하나 이상의 프리렌더링 태그들을 내장시킬 수 있다. 서버(104)는 클라이언트 디바이스(102)에 제공되는 검색 결과들 내에서 복수의 인자(factor)들에 의해 후보 링크들을 식별할 수 있다. 예를 들어, 서버(104)는 검색 결과들의 세트 내에서 가장 관련성이 높은 링크를 프리렌더링을 위한 최상의 후보로서 식별할 수 있다. 서버(104)는 또한, 프리렌더링 동작들을 향상시키기 위해 지표(예컨대, 클라이언트 디바이스(102)에 의해 제공되는 지표(120)와 같은 것)를 수집하는 기능을 수행할 수 있다. 예를 들어, 서버(104)는, 프리렌더링 동작들로 인해 사용자가 절약하는 시간의 양에 관한 지표, 혹은 프리렌더링 동작들에 대한 적중 및 실패 율(hit and miss rate)(예를 들어, 프리렌더링된 검색 결과가 검색 결과들의 목록(list)로부터 얼마나 빈번하게 선택되는가)에 관한 지표, 혹은 다양한 다른 특징들에 관한 지표를 수신할 수 있다.
서버(104)는 클라이언트 디바이스(102)와 유사하게 구성될 수 있으며, 메모리(126)에 결합되는 프로세서(124)를 구비한다. 메모리(126)는 서버(104)의 동작들을 용이하게 하기 위해 데이터(130) 및 명령들(128)의 세트를 포함할 수 있다. 명령들(128)은 검색 엔진(132) 및 프리렌더링 애플리케이션(134)을 포함할 수 있다. 검색 엔진(132)은 검색 쿼리에 응답하여 검색 결과들을 클라이언트(102)에 제공하도록 동작한다. 예를 들어, 검색 엔진(132)은 인터넷 검색 엔진일 수 있다. 프리렌더링 애플리케이션(134)은 검색 엔진(132)에 의해 발생된 검색 결과들(132)로부터의 검색 결과들을 프리렌더링을 위한 후보들로서 식별하도록 동작한다. 프리렌더링 애플리케이션(134)은, 내장된 명령들을 갖는 검색 결과들(138)의 세트를 생성하기 위해, 검색 결과들(136)과 함께 프리렌더링 명령들을 포함한다. 검색 결과들(136), 그리고 내장된 명령들을 갖는 검색 결과들(138)은 데이터(130) 내에 저장될 수 있다. 클라이언트 디바이스(102)에 의해 수신될 때, 클라이언트 디바이스(102)는 프리렌더링될 검색 결과들이 어떤 것인지를 식별하기 위해 그 내장된 명령들을 프로세싱한다.
프리렌더링 애플리케이션(134)은, 프리렌더링 후보 검색 결과들과 관련된 링크들에 하나 이상의 HTML 태그들을 추가함으로써, 검색 결과들(136) 내에 명령들을 내장시킬 수 있다. 예를 들어, 프리렌더링 애플리케이션(134)이 위키피디아(Wikipedia)와 관련된 검색 결과가 프리렌더링을 위한 좋은 후보라고 검출하는 것에 응답하여, 예시적 웹사이트 example.com으로의 링크에 대한 HTML은 프리렌더링 애플리케이션(134)에 의해 "<a href="http://www.example.com"> example </a>"로부터 "<link rel="prerender" href="http://www.example.com"/> <a href=http://www.example.com>example</a>"로 수정될 수 있다.
클라이언트 디바이스(102)와 서버(104) 각각은 네트워크의 별개의 노드들(node)에 있을 수 있고, 네트워크(106)의 다른 노드들과 직간접적으로 통신하도록 동작가능할 수 있다. 예를 들어, 클라이언트 디바이스(102)는 네트워크(106)를 통해 서버(104)와 통신하도록 동작가능한 모바일 전화기를 포함할 수 있다.
네트워크(106), 그리고 클라이언트 디바이스(102)와 서버(104) 사이에 있는 중간 노드(intervening node)들은 다양한 구성들을 포함할 수 있고, 그리고 다양한 프로토콜(protocol)들을 사용할 수 있는바, 이러한 다양한 프로토콜들은, 인터넷, 월드 와이드 웹, 인트라넷(intranet)들, 가상 사설 네트워크(virtual private network)들, 로컬 이더넷 네트워크(local Ethernet network)들, 하나 이상의 기업들에 소유권이 있는 통신 프로토콜들을 사용하는 사설 네트워크들, 셀률러 및 무선 네트워크(예를 들어, Wi-Fi), 인스턴트 메시징(instant messaging), 하이퍼텍스트 전달 프로토콜(HyperText Transfer Protocol)("HTTP") 및 심플 메일 전달 메일 전달 프로토콜(Simple Mail Transfer Protocol)("SMTP"), 그리고 앞서 제시된 것들의 다양한 조합들을 포함한다. 전형적인 시스템은 매우 많은 수의 연결된 컴퓨터들을 포함할 수 있음을 이해해야 한다. 예를 들어, 서버(104)의 기능은 복수의 노드들에 걸쳐 퍼져 있을 수 있고, 여기서 개개의 노드들은 검색 엔진(132) 및 프리렌더링 애플리케이션(134)을 호스팅한다.
앞서 언급된 바와 같이 정보가 전송되거나 혹은 수신되는 경우 어떤 이점들이 얻어지지만, 본 시스템 및 방법의 다른 실시형태들은 임의의 특정 방식의 정보 전송으로만 한정되지 않는다. 예를 들어, 일부 실시형태들에서, 정보는 광학 디스크 혹은 휴대용 드라이브와 같은 매체를 통해 전달될 수 있다. 다른 실시형태들에서, 정보는 비-전자적 포맷(non-electronic format)으로 전송될 수 있고 시스템에 수동으로 입력될 수 있다.
도 2는 본 개시내용의 실시형태들에 따른, 프리렌더링 명령들을 사용하는 검색 결과 페이지(200)의 예를 나타낸 도면이다. 도시된 검색 결과 페이지(200)는 검색 쿼리 "test search query"에 응답하여 수신된 검색 결과들의 세트를 보여준다. 평범한 텍스트 쿼리(plain text query)가 제시되고 있지만, (이미지, 비디오, 혹은 임의의 다른 소스에 근거하는 검색을 포함하는) 임의의 적절한 검색 쿼리를 통해 검색이 수행될 수 있다. 검색 결과 페이지(200)는 하나 이상의 검색 결과들(202)을 포함한다. 각각의 검색 결과(202)는 HTML 데이터(204)와 관련되어 있다. 디스플레이되는 검색 결과(202)에 대한 HTML 데이터(204)는 검색 결과(202)에 "link rel='prerender'" 항목이 내장되어 있음을 표시하고, 여기서 "link rel='prerender'" 항목은 검색 결과들을 디스플레이하는 브라우저(200)에 의해 HTML 데이터(204)와 관련된 검색 결과(202)가 프리렌더링돼야만 함을 표시한다.
도 3은 본 개시내용의 실시형태들에 따른, 웹 페이지를 프리렌더링하기 위한 예시적인 방법(300)을 도시한 흐름도이다. 방법(300)의 실시형태들은, 사용자가 네트워크 콘텐츠로 네비게이팅(navigating)하기 전에 상기 네트워크 콘텐츠를 요청함으로써, 네트워크 콘텐츠에 대한 로드 시간을 최소화시키도록 동작한다. 이 방법(300)은, 사용자에 의해 가능성 있는 네비게이션 타겟(likely navigation target)들로서 식별된 웹 페이지들을 프리렌더링함으로써, 사용자 웹 브라우징 경험에서의 지연들을 제거하기 위해 컴퓨팅 디바이스(예를 들어, 클라이언트(102))에 의해 수행될 수 있다. 예를 들어, 방법(300)은 브라우저(116)의 구성요소들에 의해 수행될 수 있다. 방법(300)의 실시형태들이 클라이언트(102)와 관련하여 설명되고 있지만, 방법(300)은 또한, 서버(104)에 의해 수행될 수도 있고, 혹은 명령들을 수용하도록 설계된 하드웨어 및/또는 소프트웨어를 갖는 임의의 디바이스에 의해서도 수행될 수 있다. 방법(300)의 예시적인 실시형태들이 단일 네비게이션 이벤트와 관련된 단일 페이지의 프리렌더링에 관해 설명되고 있지만, 방법(300)은 또한, 하나 이상의 네비게이션 이벤트들과 관련된 복수의 페이지들을 프리렌더링하는 것(예를 들어, 복수의 페이지들을 차례로 프리렌더링하는 것 혹은 복수의 병렬 프리렌더링 인스턴스들에서 프리렌더링하는 것)에도 광범위하게 적용가능하다.
단계(302)에서, 클라이언트(102)는 웹 브라우저 내에서 다음 네비게이션 이벤트(next navigation event)를 결정한다. 다음 네비게이션 이벤트는 서버(104)에 의해 검색 결과 페이지 내에 내장된 프리렌더링 명령들을 통해 식별될 수 있다. 예를 들어, 검색 엔진은, 관련성이 가장 높은 결과와 관련된 특정 링크가 웹 브라우저에 의해 프리렌더링돼야만 함을 표시하기 위해, 검색 결과들의 세트 내에 태그를 내장시킬 수 있다. 프리렌더링 태그들을 웹 페이지 내에 내장시키기 위한 방법은 아래에서 설명된다(도 4 및 도 8 내지 도 10 참조).
단계(304)에서, 클라이언트(102)는 스테이지(stage)(302)에서 식별된 네비게이션 이벤트와 관련된 콘텐츠를 요청한다. 이러한 요청은, 하이퍼텍스트 전달 프로토콜(HTTP) GET 요청, 파일 전달 프로토콜(File Transfer Protocol, FTP) 요청, 혹은 본 발명의 기술분야에서 알려진 임의의 다른 네트워크 데이터 액세스 요청을 포함할 수 있다. HTTP GET 요청에 응답하여 웹 콘텐츠의 제 1 세트가 제공될 수 있는바, 이것은 웹 콘텐츠의 제 1 세트에 따른 추가적인 HTTP GET 요청들을 일으킬 수 있다. 예를 들어, HTTP GET 요청은 결과적으로 베이스 웹 페이지(base web page)가 웹 브라우저에 전송되게 할 수 있고, 이것은 추가적인 GET 요청들과 같은 다른 페이지 로드 동작들을 트리거(trigger)시킬 수 있다. 베이스 웹 페이지는 복수의 내장된 이미지들을 가질 수 있는바, 이것은 각각의 이미지에 대한 HTTP GET 요청들을 사용하여 페치되고 렌더링된다. 설명되는 바와 같은 프리렌더링 프로세스는 관련된 스크립트들을 포함하는 전체 웹 페이지를 요청할 수 있고, 그 다음에 이러한 스크립트들을 실행할 수 있다. 요청에 응답하여, 네비게이션 이벤트와 관련된 웹 콘텐츠는 웹 브라우저로 전송된다. 예를 들어, 서버(104)는 웹 브라우저에 콘텐츠를 전송할 수 있다. 검색 엔진 예로 되돌아 가서, 프리렌더링 태그가 내장된 웹 페이지를 수신하는 경우, 클라이언트(102)는, 검색 엔진에 의해 식별되는 바와 같은 숨겨진 브라우저 인스턴스 내에서 상단 검색 결과(top search result)와 관련된 URL과 관련되어 있는 웹 페이지를 요청 및 렌더링한다.
단계(306)에서, 클라이언트(102)는 스테이지(302)에서 결정된 네비게이션 이벤트와 관련된 콘텐츠를 렌더링한다. 콘텐츠는 사용자로부터 숨겨진 웹 브라우저의 대체 인스턴스(alternate instance)에서 렌더링될 수 있다. 예를 들어, 콘텐츠는 대체 프로세스(alternate process)에 의해 렌더링될 수 있거나, 혹은 숨겨진 웹 브라우저 탭(hidden web browser tab)에서 렌더링될 수 있다. 일부 실시형태들에서, 클라이언트(102)는 복수의 네비게이션 이벤트들과 관련된 콘텐츠를 렌더링할 수 있다. 예를 들어, 네비게이션 이벤트들은 우선순위 값과 관련될 수 있는바, 여기서 가능성이 더 있는 네비게이션 이벤트들이 더 높은 값 혹은 더 낮은 값과 관련된다. 이처럼, 클라이언트(102)는 클라이언트(102)의 능력에 따라, 상단 "n"개의 가장 가능성 있는 이벤트들을 렌더링할 수 있다(도 7 참조).
일부 실시형태들에서는, 렌더링된 콘텐츠는 리다이렉션 동작(redirection operation)을 포함할 수 있다. 리다이렉션 동작의 예는 제 1 페이지(예컨대, www.a.com)를 로드하는 동작이 브라우저로 하여금 제 2 페이지(예컨대, www.b.com)를 로드하도록 하는 경우이다. 리다이렉션은 HTML 태그, 자바스크립트 네비게이션 커맨드(JAVASCRIPT navigation command) 등에 응답하여 일어날 수 있다. 프리렌더링 페이지가 리다이렉션 동작을 요청하는 경우, 상기 리다이렉션 동작은 또한, 대체 인스턴스에서 일어나게 된다.
일부 실시형태들에서, 제 1 리다이렉션 동작은 후속의 리다이렉션들을 일으킬 수 있다. 예를 들어, www.a.com은 www.b.com을 일으킬 수 있고, www.b.com은 www.c.com을 일으킨다. 시스템 및 방법의 실시형태들은, 예를 들어, 리다이렉션 동작들의 히스토리(history)를 저장함으로써, 그리고 첫 페이지가 프리렌더되도록 식별되는 것에 응답하여 시리즈(series)에서 마지막 페이지를 프리렌더링함으로써, 이러한 사실을 고려할 수 있다. 일부 실시예들에서, 방법(300)은, 목적지 결과 페이지(즉, 리다이렉션 동작들의 끝에 있는 페이지)가 알려진 경우 중간 페이지들을 프리렌더링하지 않음으로써, 그리고 시리즈에서 마지막 페이지만을 프리렌더링함으로써, 리다이렉션 동작들을 쇼트-회로(short-circuit)화할 수 있다.
스테이지(308)에서, 클라이언트(102)는 사용자가 스테이지(302)에서 식별된 링크를 특정 시간 주기(time period) 내에서 선택했는지 여부를 결정할 수 있다. 예를 들어, 방법(300)은 10초, 20초, 30초, 1분, 5분, 혹은 임의의 다른 시간 프레임(time frame) 동안 대기할 수 있다. 일부 실시형태들에서, 이러한 시간 프레임은 웹 브라우저와 관련된 옵션 메뉴(options menu) 내에서 구성가능할 수 있다. 시간 프레임은 또한 서버(104)에 의해 특정될 수 있다. 예를 들어, 서버(104)는 프리렌더링 태그 내에 타임아웃 값(timeout value)을 내장시킬 수 있는바, 여기서 타임아웃 값은 태그와 관련된 콘텐츠가 폐기되기 전에 유지돼야만 하는 시간의 길이를 표시한다. 만약 사용자가 특정 시간 주기 내에 링크를 선택했다면, 방법(300)은 스테이지(312)로 진행한다. 그렇지 않다면, 방법(300)은 스테이지(310)로 진행한다.
스테이지(310)에서, 클라이언트(102)는 프리렌더링된 콘텐츠를 폐기한다. 프리렌더링된 콘텐츠는 이러한 방식으로 만료(expire)될 수 있고, 이에 따라 프리렌더링 동작과 관련된 시스템 리소스들은 해방(free up)되게 되며, 진부한 데이터(stale data)가 사용자에게 제시되는 것이 방지되게 된다. 일부 실시형태에서는, 상이한 타입의 데이터에 대해 상이한 만료 기간이 특정될 수 있다. 예를 들어, 급격히 변할 가능성이 있는 데이터(예를 들어, 속보 뉴스 기사(breaking news articles), 주식 시세(stock quotes), 신디케이션 피드(syndication feeds), 등과 같은 것)는 빨리 진부하게 될 가능성이 더 높고, 10초, 20초, 혹은 1분과 같은 더 짧은 만료 타이머(expiration timer)와 관련될 수 있다. 변할 가능성이 낮은 데이터(예를 들어, 레퍼런스 기사(reference articles), 보관자료(archives), 박스 스코어(box scores), 등과 같은 것)는, 1시간, 6시간, 24시간, 1주일, 등과 같은 더 긴 만료 타이머와 관련될 수 있다. 일부 실시형태에서, 대기 시간은 페이지 타입에 기반을 둔다. 예를 들어, 만약 사용자가 긴 뉴스 기사를 보고 있다면, 다음 페이지를 선택하기 전에 기사의 현재 페이지를 판독하기 위한 사용자 시간을 제공하기 위해 기사의 다음 페이지를 프리렌더링할 때 더 긴 대기 시간이 특정될 수 있다. 일부 실시형태들에서, 대기 시간은 페이지 내에 내장되는 타임-투-리브(Time-To-Live, TTL) 파라미터에 의해 결정된다. 일부 실시형태들에서, 대기 시간은 브라우저 내에 하드 코딩(hard coding)된다. 프리렌더링된 콘텐츠가 폐기된 이후에 방법(300)은 끝나게 되며, 하지만 일부 실시형태들에서, 방법(300)은 사용자가 웹 콘텐츠를 브라우징함에 따라 제한 없이 반복될 수도 있다.
단계(312)에서, 클라이언트(102)는, 사용자가 스테이지(302)에서 결정된 네비게이션 이벤트를 선택하는 것에 응답하여, 프리렌더링 콘텐츠를 포함하는 대체 인스턴스를 현재 사용자 인스턴스에 스와핑시킨다. 이러한 방식으로, 클라이언트(102)는 데이터가 호스트 서버로부터 요청되어 호스트 서버로부터 수신되는 동안 지연 없이 네비게이션 이벤트와 관련된 콘텐츠를 즉시(instantly) 디스플레이한다. 검색 결과들의 예로 되돌아 가서, 만약 사용자가 관련성이 가장 높은 결과를 선택한다면, 관련된 페이지는 이미 대체 인스턴스에 로드되어 있고, 따라서 사용자가 링크를 클릭하자마자 즉시 이용가능하게 된다. 일부 실시형태들에서, 사용자는 프리렌더링 동작 완료 전에 네비게이션 이벤트를 선택할 수 있다. 이러한 경우에 있어서, 부분적으로 로드된 페이지가 현재 사용자 인스턴스에 스와핑되게 된다. 부분적으로 로드된 페이지는 이후 평상시와 같이 현재 사용자 인스턴스에 계속 로드되게 된다. 그 다음에, 프리렌더링된 콘텐츠가 사용자에게 이용가능하게 된 이후 방법(300)은 끝난다.
도 4는 프리렌더링될 네비게이션 이벤트를 표시하기 위한 예시적인 방법(400)의 예를 도시한 흐름도이다. 일부 실시형태들에서, 콘텐츠를 호스팅하는 서버(예를 들어, 서버(104))는 웹 브라우저가 프리렌더링할 네비게이션 이벤트를 특정할 수 있다. 프리렌더링되는 링크 혹은 링크들을 서버가 특정할 수 있게 하는 것은 다양한 이유로 최적일 수 있는데, 예컨대, 서버는 어떤 네비게이션 이벤트가 일어날 가능성이 가장 높은지에 관한 가장 좋은 정보를 가지고 있기 때문이며, 또는 서버는 예컨대, 로드 밸런싱 동작(load balancing operation)들을 위해, 그 호스팅되는 특정 링크들과 관련된 대역폭을 관리하기를 원하기 때문이다. 이처럼, 서버(104)는 호스팅되는 페이지 내에 프리렌더링 태그 혹은 태그들을 내장시킬 수 있는바, 이는 콘텐츠가 있는 클라이언트(102)의 프리렌더링 모듈(210)로 하여금 렌더링을 행하도록 명령한다.
스테이지(402)에서, 서버(104)는 호스팅되는 웹 페이지 내에서 하나 이상의 링크드들을 식별한다. 예를 들어, 서버(104)는 클라이언트(102)로부터의 쿼리에 응답하여 웹 사이트들의 목록을 발생시킬 수 있다. 각각의 검색 결과는 쿼리에 응답하여 제공되게 되는 페이지 상에서의 특정 링크와 관련될 수 있다.
단계(404)에서, 서버(104)는 프리렌더링될 하나 이상의 링크들을 선택하는바, 이는 스테이지(402)에서 식별된 링크들로부터 선택된다. 프리렌더링될 링크들은 다양한 목적으로 다양한 방법들에 의해(예컨대, 사용자 네비게이션 히스토리, 전체 네비게이션 히스토리, 관련성이 가장 높은 링크, 등을 조사(examine)함으로써) 선택될 수 있다. 일부 실시형태들에서, 링크들은 특정 쿼리에 응답하여 가장 높은 빈도로 클릭되는 링크들을 분석하는 검색 엔진에 의해 선택된다. 예를 들어, 검색 엔진은 특정 쿼리에 응답하여 어떤 링크들이 클릭되는지를 표시하는 "클릭-쓰루(click-through)" 데이터를 수집할 수 있고, 프리렌더링될 하나 이상의 링크들을 특정 링크들이 선택되는 빈도에 근거하여 선택할 수 있다. 검색 엔진 예를 계속하면, 서버(104)는 상단 검색 결과, 혹은 상단의 "n"개의 검색 결과들을 프리렌더링될 최적의 링크들로서 식별할 수 있다. 일부 실시형태들에서, 서버(104)는 또한, 프리렌더링될 가장 최적의 링크가 1번 순위를 갖고, 그 다음 가장 최적의 링크가 2번 순위를 갖는 등으로, 프리렌더링될 링크들의 순위를 식별할 수 있다. 서버(104)는 또한, 순위가 아니라, 각각의 링크가 선택될 가능성을 식별할 수 있다. 예를 들어, 서버(104)는 특정 링크가 (사용자에 의해 선택될) 50% 가능성을 가짐, 혹은 25% 가능성을 가짐, 혹은 80% 가능성을 가짐을 표시할 수 있다. 클라이언트에 의해 수행되는 프리렌더링 동작들은 가능성의 임계 레벨(예컨대, 적어도 50%의 가능성, 적어도 80%의 가능성, 혹은 임의의 다른 임계 레벨과 같은 것)과 관련된 링크들을 프리렌더링하도록 선택을 행할 수 있다.
스테이지(406)에서, 서버(104)는 스테이지(404)에서 식별된 하나 이상의 링크들과 함께 하나 이상의 프리렌더링 태그들을 내장시킨다. 예를 들어, 서버(104)는 프리렌더링될 최적의 링크 혹은 링크들을 식별하기 위한 하이퍼텍스트 마크업 언어(HTML) 태그를 포함할 수 있다. 앞서 설명된 바와 같이, 프리렌더링 태그는 또한, 순위 값, 그리고 프리렌더링을 유지시킬 시간을 특정하는 TTL 값을 포함할 수 있다. 검색 엔진 예를 계속하면, 서버(104)는 검색 결과의 관련성에 의해 결과들의 프리렌더링 순서의 순위를 정하는 것과 함께, 각각의 검색 결과를 프리렌더링 태그로 식별할 수 있다.
스테이지(408)에서, 내장된 프리렌더링 태그들을 갖는 페이지는 그 페이지를 요청한 클라이언트에게 전송된다. 그 다음에, 페이지를 전송한 이후 방법(400)은 끝난다.
도 5는 본 개시내용의 실시형태들에 따른 프리렌더링 동작 동안 웹 노출 통계자료(web impression statistics)를 관리하기 위한 예시적 방법(500)을 도시한 흐름도이다. 웹 사이트들은 종종 어떤 콘텐츠가 조회되는지, 어떤 페이지들이 액세스되는지, 이러한 페이지들이 어떤 순서로 액세스되는지, 그리고 각각의 페이지 상에서 얼마나 많은 시간이 소요되는지를 추적한다. 이러한 데이터의 이와 같은 획득 및 분석은 광범위하게는 "웹사이트 분석(website analytics)"으로 지칭된다. 이러한 통계자료는 다양한 목적으로 사이트 운용자(site operator)들에 의해 사용될 수 있는 데이터를 제공한다. 예를 들어, 이러한 데이터의 이와 같은 한 가지 사용은 콘텐츠와 함께 디스플레이되는 광고들에 대한 비율(rates)을 계산하는 것이다. 그러나, 일부 경우들에서, 사용자는 프리렌더링된 콘텐츠와 관련된 네비게이션 이벤트를 선택하지 않을 수 있고, 따라서 이러한 데이터의 수집에 지장을 주게 된다. 예를 들어, 소정의 페이지가 사용자에게 전송된 횟수를 통해 사용자 노출을 추적하는 종래의 모델은 이제 더 이상 정확한 결과를 제공할 수 없는데, 왜냐하면 콘텐츠가 전송될 때마다 사용자가 그 콘텐츠를 조회하는 것은 아닐 수 있기 때문이다. 이에 따라, 서버(104)와 같은 이러한 서버는 프리렌더링된 콘텐츠를 고려하는, 노출들의 정확한 추적을 위한 방법을 제공한다. 이러한 한 가지 방법이 아래에서 설명된다. 광고 콘텐츠의 노출 통계자료를 관리하는 것과 관련하여 본 방법의 특정 예들이 제공될 수 있지만, 본 방법의 실시형태들은 프리렌더링 요청에 응답하여 서빙(serving)되는 페이지들에 대한 정확한 웹사이트 분석을 보장하는 것에 광범위하게 적용가능함을 이해해야 한다.
스테이지(502)에서, 서버(104)는 클라이언트(102)와 같은 컴퓨팅 디바이스로부터 프리렌더링 요청을 수신한다. 일부 실시형태들에서, 프리렌더링 요청은, 예컨대, 콘텐츠 요청이 그 콘텐츠 요청과 함께 전송되는 자바스크립트 API(JAVASCRIPT API)를 통해 프리렌더링 동작에 대한 것임을 표시하는 클라이언트(102)에 의한 스크립팅 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API)를 사용하여 식별될 수 있다. 프리렌더링 요청은 또한, 그 요청이 프리렌더링 요청임을 표시하는 수정된 HTTP 헤더(modified HTTP header)와 동반될 수 있다. 일부 실시형태들에서, 서버(104)는 API에 의해 제공되는 바와 같은 클라이언트(102)로부터 이벤트 통지(event notification)를 (예를 들어, 서버(104) 상에서 실행되는 애플리케이션을 사용하여 그 이벤트 통지에 등록함으로써) 수신하도록 구성된다. 일부 실시형태들에서, 서버(104)는, 예컨대, 서버가 대역폭 제한되어 있거나 그렇지 않다면 프리렌더링을 허용하고 싶지않은 경우에, 프리렌더링 요청에 응답하여 콘텐츠를 전송하지 않을 것을 선택할 수 있다. 이러한 방식으로 프리렌더링 요청의 통지를 제공하는 것은 또한, 서버(104)가 프리렌더링 요청의 프로세싱에 관해 "탈퇴(opt-out)"하는 것을 허용한다. 예를 들어, 서버(104)는 대역폭 제한될 수 있고, 따라서 프리렌더링되지 않은 콘텐츠(non-prerendered content)를 호스팅하는 것에 집중할 필요가 있을 수 있다. 일부 실시형태들에서, 서버(104)는 또한, 이와 같이 표시하는 HTML 메타태그(metatag)를 포함함으로써 탈퇴할 수 있거나, 또는 (예를 들어, 검색 결과들의 목록 내에 표시되는) 검색 엔진에 의한 콘텐츠의 프리렌더링을 막기 위해 서버 상에서 호스팅되는 "robots.txt" 파일 내에 임의의 엔트리(entry)를 포함함으로써 탈퇴할 수 있다.
스테이지(504)에서, 서버(104)는 특정 콘텐츠가 편집(redact)되어 있는 부분적 웹 페이지를 전송할 수 있다. 예를 들어, 많은 경우에 있어 광고 노출들은 광고 이미지가 전송된 횟수에 근거하여 결정되기 때문에, 서버(104)는 프리렌더링 요청에 응답하여 광고 콘텐츠와 관련된 이미지들을 제공하지 않을 수 있다. 유사한 방법이 다른 방식으로 (예컨대, 스크립팅 혹은 실행가능한 콘텐츠를 통해) 제공되는 광고들에 적용될 수 있다. 예로서, 서버(104)는 베이스 웹 페이지를 제공함으로써 프리렌더링 요청에 응답할 수 있다. 베이스 웹 페이지는 결과적으로, 클라이언트(102)로 하여금 베이스 웹 페이지에 의해 식별되는 콘텐츠에 대한 하나 이상의 추가적인 HTTP GET 요청들을 개시시키도록 할 수 있다. 서버(104)는 베이스 웹 페이지 내에서 식별된 광고 이미지들에 대한 HTTP GET 요청들에 응답하여 콘텐츠를 전송하지 않을 것을 선택할 수 있다.
일부 실시형태들에서, 편집된 버전의 콘텐츠는, 편집된 이미지들, 스크립들 등과 관련된 특별한 HTTP 에러 코드를 포함할 수 있는바, 이는 수신 컴퓨팅 디바이스에게 특정 콘텐츠는 편집되었음을 표시한다. 이러한 방식으로, 클라이언트(102)는, 특정 콘텐츠가 이용가능하지 않다는 정보를 제공받는 것이 아니라, 특정 콘텐츠가 편집되었고 나중 공급될 것이라는 정보를 제공받을 수 있다. 이에 따라, 클라이언트(102)는 액세스시 콘텐츠가 로드되는 동안 그 편집된 콘텐츠를 특정 그래픽 혹은 임시 디스플레이로 표시할 것을 선택할 수 있거나, 또는 편집된 콘텐츠는 블랭크(blank) 상태로 나타날 수 있다.
일부 경우들에서, 클라이언트(102)는 편집된 콘텐츠를 적절하게 디스플레이하는 방법을 알지 못할 수 있고, 이러한 경우에 클라이언트(102)는 프리렌더링 동작을 중단(abort)시킬 수 있다. 더욱이, 사용자가 콘텐츠에 액세스하는 경우, 클라이언트(102)는 서버(104)에게 프리렌더링된 페이지가 조회되었음을 통지할 수 있다. 이에 응답하여, 서버(104)는 편집된 콘텐츠를 클라이언트(102)에게 전송할 수 있다.
스테이지(506)에서, 서버(104)는 콘텐츠의 프리렌더링이 사용자에 의해 조회되었다는 확인(confirmation)을 수신한다. 앞서와 같이, 서버(104)는 웹 브라우저를 통해 제공되는 API를 통해 콘텐츠의 조회를 통지받을 수 있다. 예를 들어, 스크립트는 이벤트 통지를 서버(104)에 전달할 수 있다. 만약 이러한 이벤트 통지에 대해 서버(104)가 등록되어 있다면, 서버(104)는 적절한 동작(예를 들어, 편집된 콘텐츠를 클라이언트(102)에게 전송하는 것)을 취할 수 있다. 서버(104)에게 프리렌더링 콘텐츠가 조회되었다는 것을 알려줌으로써, 서버(104)는 임의의 편집된 콘텐츠를 전송해야 한다는 것을 알게 되고, 그리고 임의의 광고들과 관련된 노출 통계자료를 업데이트해야 한다는 것을 알게 된다.
스테이지(508)에서, 서버(104)는 스테이지(504)에서 편집된 콘텐츠를 전송한다. 사용자가 콘텐츠에 액세스했음을 서버(104)가 보장했기 때문에 콘텐츠는 이제 전송될 수 있다. 예를 들어, 서버(104)는 광고들, 스크립팅 코드, 등과 관련된 이미지들을 전송할 수 있다.
스테이지(510)에서, 서버(104)는 스테이지(508)에서 전송된 바와 같은 콘텐츠와 관련된 노출 통계자료를 업데이트한다. 일부 실시형태들에서는, 이미지를 호스팅하고 광고를 전송하는 동작이 페이지 노출 통계자료를 자동으로 업데이트하기 때문에 스테이지(508)와 스테이지(510)는 동시에 일어난다. 이러한 방식으로, 서버(104)는 웹사이트 분석 데이터의 정확한 보고(reporting)를 유지함과 동시에, 클라이언트(102)가 또한 프리렌더링 동작들을 수행할 수 있게 한다.
도 6은 본 개시내용의 실시형태들에 따른, 프리렌더링 동작을 관리하기 위한 예시적인 방법(600)을 도시한 흐름도이다. 최적의 프리렌더링 경험을 제공하기 위해, 클라이언트(102)는 브라우징 경험에 영향을 미칠 수 있는 다양한 인자들을 고려할 수 있다. 예를 들어, 일반적으로 웹 페이지들은 웹 브라우저를 통해 다양한 페이지 서비스들을 제공하기 위해 쿠키(cookies)로서 알려진 작은 파일들을 사용한다. 예를 들어, 뉴스 사이트는 사용자로 하여금 해당 페이지 상에서의 등록 없이 매일 하나의 뉴스 기사에 액세스할 수 있도록 하기 위해 트래킹 쿠키(tracking cookie)를 사용할 수 있다. 이 경우, 그 뉴스 사이트와 관련된 프리렌더링 동작은 사용자의 브라우징 경험에 지장을 줄 수 있는데, 왜냐하면 사용자는 그가 판독하려고 의도하지 않은 기사를 프리렌더링할 수 있고, 이에 따라 그가 조회하지 않았던 페이지에 관해 매일 하나의 무료 기사를 소비해 버리기 때문이다.
어떤 웹 페이지들은 페이지가 로드되자마자 재생을 시작하는 내장된 오디오 혹은 비디오 콘텐츠를 갖는다. 일부 구현예들의 경우, 본 명세서에서 설명되는 바와 같은 프리렌더링 방법 및 시스템은 사용자가 이러한 콘텐츠로 네비게이팅하기 전에 그 콘텐츠가 재생을 시작할 수 있게 하고, 따라서 사용자가 페이지를 조회하기 시작할 때, 콘텐츠는 이미 재생되고 있다. 어떤 웹 페이지들은, 팝-업 페이지(pop-up page)들, 스크립트 프로그램(scripted program)들, 다운로드(download)들, 인증 프롬프트(authentication prompt)들, 변환 바(translation bar)들 등과 같은, 프리렌더링에 적합하지 않을 수 있는 추가적인 콘텐츠를 포함할 수 있다. 이에 따라, 프리렌더링 모듈(210)은 이러한 특별한 경우들을 관리하기 위한 방법(예를 들어, 방법(600))을 사용할 수 있다.
스테이지(602)에서, 클라이언트(102)는 서버(104)와 같은 서버로부터 프리렌더링 콘텐츠를 요청 및 수신한다. 앞서 설명된 바와 같이, 요청은 그 요청이 프리렌더링 요청임을 서버에게 표시하는 API 호출(call) 내에 제시될 수 있거나 혹은 API 호출에 동반될 수 있다. 서버로부터 수신되는 응답에 근거하여 페이지는 프리렌더링된다. 프리렌더링 프로세스 동안, 클라이언트(102)는 아래에서 설명되는 바와 같은 몇몇의 특별한 경우들에 대해 모니터링을 한다. 특정 순서로 제시되고 있지만, 이러한 경우들은, 예를 들어, 쿠키 상태 변경을 경험하기 전에 임의의 내장된 비디오를 식별하는 것과 같은 그러한 것을 행함으로써, 임의의 순서로 일어날 수 있다.
스테이지(604)에서, 클라이언트(102)는 요청된 프리렌더링 콘텐츠가 쿠키 상태 변경 혹은 또 다른 특별한 경우를 포함하고 있는지 여부를 결정한다. 예를 들어, 사용자가 은행 웹 페이지(banking web page)에 액세스하고 있는 경우, 만약 계좌 페이지(account page)가 프리렌더링되고 난 다음에 사용자가 자신의 계좌로부터 로그 아웃(log out)한다면, 프리렌더링 링크를 선택하는 것은 마치 사용자가 여전히 로그 인(log in)되어 있는 것처럼, 부정확하게 데이터를 보고하게 한다. 이에 따라, 프리렌더링은 사용자가 로그 아웃 하자마자 유효하지 않게 된다. 따라서, 클라이언트(102)는 프리렌더링 콘텐츠와 관련된 임의의 쿠키들의 상태을 모니터링하고 적절한 동작을 취할 수 있다. 적절한 동작은, 쿠키 상태 변경들을 적절하게 전파(propagate)시키려고 시도하는 것, 쿠키 상태 변경들을 무시하고 계속 프리렌더링 동작을 행하는 것, 혹은 프리렌더링 동작을 포기하고 중단시키는 것을 포함할 수 있다. 클라이언트(102)는 또한, 만약 프리렌더링 콘텐츠가 특별한 경우(예를 들어, 팝-업 페이지, 스크립트 애플리케이션(scripted application), 다운로드, 인증 메뉴(authentication menu), 또는 변환 바와 같은 것)를 포함하는지를 결정한다. 만약 쿠키 상태 변경이 발생했거나 혹은 프리렌더링 페이지가 특별한 경우를 포함한다면, 방법은 스테이지(608)로 진행한다. 그렇지않다면, 방법(600)은 스테이지(606)로 계속 이어진다.
스테이지(608)에서, 클라이언트(102)는 프리렌더링 동작을 중단시킬 수 있다. 클라이언트(102)는, 스테이지(604)에서 식별된 쿠키 상태 변경 혹은 특별한 경우가 프리렌더링된 페이지와 관련된 데이터를 진부하게 만들거나 혹은 그렇지 않다면 사용자에게 조회가능하지 않게 만들기 때문에, 프리렌더링 동작을 중단시킬 수 있다. 일부 실시형태들에서, 클라이언트(102)는 쿠키 상태 변경을 무시할 수 있다. 그 다음에, 방법(600)은 끝난다.
쿠키 데이터를 관리하는 대체 방법으로서, 클라이언트(102)는 프리렌더링 콘텐츠와 관련된 임의의 쿠키 상태 변경을 추적할 수 있고, 프리렌더링 콘텐츠가 사용자에 의해 액세스되는 경우 그 상태 변경을 적용할 수 있다. 일부 실시형태들에서, 클라이언트(102)는 또한 쿠키 상태 변경에서의 충돌(conflict)들에 대해 모니터링할 수 있고, 충돌의 발생시 프리렌더링 동작을 중단시킬 수 있다. 예를 들어, 쿠키 상태 변경은 프리렌더링 동작이 완료된 이후에 일어날 수 있고, 따라서 충돌을 일으킬 수 있다. 이러한 경우에, 프리렌더링된 버전의 페이지는 부정확한 페이지 데이터를 사용자에게 제시하는 것을 피하기 위해 폐기될 수 있다.
스테이지(606)에서, 만약 프리렌더링 콘텐츠가 특별한 경우를 포함하지 않고 쿠키 상태 변경을 갖지 않는다면, 클라이언트(102)는 페이지 상에 멀티미디어 콘텐츠(multimedia content)(예를 들어, 오디오 혹은 비디오 같은 것)가 존재하는지 여부를 결정한다. 예를 들어, 페이지는 어도브 플래시(ADOBE FLASH)로 프로그래밍된 임의의 내장된 비디오, HTML5 미디어, 혹은 다른 타입의 내장된 미디어를 포함할 수 있다. 이러한 상황에서는, 사용자가 해당 페이지로 실제로 네비게이팅할 때까지 그 멀티미디어를 일시정지(pause)시키는 것이 바람직할 수 있는바, 이에 따라 대역폭을 절약할 수 있고, 그리고 사용자가 전체 멀티미디어 파일을 조회할 수 있음을 보장할 수 있다. 만약 페이지가, 내장된 멀티미디어를 포함한다면, 방법은 스테이지(612)로 진행한다. 그렇지않다면, 방법(600)은 스테이지(610)로 진행한다.
스테이지(610)에서, 클라이언트(102)는 콘텐츠가 멀티미디어 콘텐츠, 쿠키 상태 변경들, 혹은 특별한 경우들을 포함하고 있지 않음을 결정했고, 이에 따라 클라이언트(102)는 페이지를 프리렌더링한다. 프리렌더링 프로세스는 서버(104)로부터 페이지를 수신함으로써, 그리고 사용자로부터 숨겨진 애플리케이션 인스턴스에서 그 페이지를 렌더링함으로써, 수행될 수 있다. 페이지를 렌더링하는 것은 일반적으로, 서버(104)로부터 수신된 모든 데이터를 로드하는 것, 그리고 그 안에 포함된 임의의 명령들을 실행하는 것과 관련되는데, 이때 명령들은 본 경우와는 달리 페이지를 조회할 때 숨겨지지 않은 애플리케이션 인스턴스에서 실행되게 된다.
스테이지(612)에서, 클라이언트(102)는 콘텐츠가 멀티미디어 콘텐츠를 포함한다고 결정한다. 따라서, 클라이언트(102)는 멀티미디어 콘텐츠가 아닌 페이지의 콘텐츠를 프리렌더링하고, 그리고 멀티미디어 콘텐츠의 재생을 일시정시시킬 수 있거나 혹은 그 콘텐츠와 관련된 플러그-인(plug-in)의 인스턴스화(instantiation)를 연기(defer)할 수 있다. 예를 들어, 클라이언트(102)는 페이지의 나머지를 프리렌더링한 이후에 임의의 내장된 오디오 혹은 비디오 파일을 일시정지시킬 수 있거나, 또는 프리렌더링 콘텐츠가 사용자에게 보이기까지 플래시 비디오(FLASH video)는 실행되지 않을 수 있다.
스테이지(614)에서, 클라이언트(102)는 사용자가 프리렌더링된 콘텐츠에 액세스했는지 여부를 결정한다. 만약 사용자가 프리렌더링된 콘텐츠에 액세스한다면, 콘텐츠는 앞서 설명된 바와 같이 디스플레이되고, 방법(600)은 스테이지(616)로 진행한다. 만약 사용자가 프리렌더링된 콘텐츠에 액세스하지 않는다면, 예를 들어, 도 3을 참조하여 앞서 설명된 바와 같이 프리렌더링 타이머가 만료하는 경우, 방법(600)은 끝난다.
스테이지(616)에서, 클라이언트(102)는 사용자가 프리렌더링에 액세스했다는 통지를 서버(104)에게 전송한다. 앞서 설명된 바와 같이, 통지는 스크립트 API를 사용하여 전송될 수 있는바, 이로부터 서버는 이벤트 통지들을 수신하도록 구성된다. 이러한 방식으로 통지를 제공하는 것은 서버에 의해 웹사이트 노출들을 측정할 수 있게 한다(도 5 참조).
도 7은 본 개시내용의 실시형태들에 따른, 프리렌더링 동작을 구성하기 위한 예시적인 방법(700)을 도시한 흐름도이다. 상이한 컴퓨팅 디바이스들은 상이한 능력(capabilities)(예컨대, 네트워크 대역폭, 시스템 메모리, 및 프로세서 속도와 같은 것)을 가지고 있을 수 있다. 이에 따라, 다양한 디바이스들은 상이한 프리렌더링 동작들을 지원할 수 있다. 보다 많은 능력을 갖는 디바이스는 복수의 프리렌더링 동작들을 지원할 수 있거나 혹은 더 복잡한 페이지들의 프리렌더링을 지원할 수 있다. 이에 따라, 방법(700)은 시스템의 능력들에 근거하여 이러한 프리렌더링 동작들의 구성을 제공한다.
스테이지(702)에서, 클라이언트(102)는 시스템 능력의 측정을 행한다. 예를 들어, 클라이언트(102)는 시스템 메모리의 여유 공간의 양에 대해 오퍼레이팅 시스템에게 질의할 수 있거나, 클라이언트(102)는 기본 입력-출력 시스템(Basic Input-Output System, BIOS)으로부터 프로세서 속도를 요청할 수 있거나, 혹은 클라이언트(102)는 여유 대역폭을 결정하기 위해 네트워크 속도 테스트를 수행할 수 있다.
스테이지(704)에서, 클라이언트(102)는 스테이지(702)에서 결정된 바와 같은 능력들에 근거하여 최대 개수 "n"개의 프리렌더링들을 결정한다. 일부 실시형태들에서, 클라이언트(102)는 단일 프리렌더링 인스턴스를 지원하기 위한 시스템 요건들의 세트를 결정할 수 있다. 예를 들어, 단일 프리렌더링 인스턴스는 10 퍼센트 프로세서 이용도(processor utilization), 16 메가바이트(megabytes)의 시스템 메모리, 적어도 10 킬로바이트/초의 네트워크 대역폭 등을 요구할 수 있다. 시스템 요건들은 또한, 상이한 시스템 컴포넌트들과 관련된 복수의 능력들(예컨대, 각각의 최소 메모리 요건, 프로세서 이용도, 및 네트워크 대역폭과 같은 것)을 포함할 수 있다. 이러한 시스템 요건들은 클라이언트(102) 상에서 실행되는 단일 프리렌더링 인스턴스의 시스템 이용도를 측정함으로써 결정될 수 있다.
예를 들어, 클라이언트(102)는 각각의 프리렌더링 동작이 프리렌더링 동안 시스템 프로세서를 요구할 가능성이 있음을 결정할 수 있다. 이러한 프로세서는, 페이지가 처음에 로드되고 있는 때는 전체 프로세서가 필요하고 이후에는 감소된 프로세서가 필요가 필요하다는 점에서, "버스티(bursty)"일 수 있다. 이러한 경우들에 있어서, 클라이언트(102)는, 페이지의 프리렌더링이 사용자의 브라우징 경험에 영향을 미치지 않음을 보장하기 위해, 프리렌더링 인스턴스에 더 낮은 프로세서 우선권을 할당할 수 있다. 일부 실시형태들에서, 클라이언트(102)는 프리렌더링 인스턴스들의 수를 결정하기 위해 시스템 메모리를 모니터링할 수 있다. 클라이언트(102)는 프리렌더링 인스턴스에 의해 사용되는 메모리의 양을 결정할 수 있고, 그 다음에 이 양을 총 이용가능한 메모리 용량과 비교할 수 있다. 일부 실시형태들에서, 클라이언트(102)는 프리렌더링을 위해 특정 양의 시스템 메모리를 따로 확보할 수 있고, 그 확보된 메모리가 채워질 때까지 프리렌더링 인스턴스들을 발생시킬 수 있다. 일부 실시형태들에서, 시스템의 최대 네트워크 대역폭이 결정되고, 그리고 프리렌더링 인스턴스들은 이용가능한 대역폭의 비율(percentage)에 근거하여 발생된다. 일부 실시형태들에서, 클라이언트(102)는 로컬 최대 대역폭(local maximum bandwidth)을 식별하기 위해 원격 서버로부터 대역폭 측정치를 요청할 수 있고, 이 측정치를 프리렌더링 설정치를 결정하기 위해 사용할 수 있다.
스테이지(706)에서, 클라이언트(102)는 스테이지(704)에서 결정된 바와 같은 시스템 능력들이 지원할 수 있는 만큼 많은 프리렌더링들을 동시에 수행하도록 구성된다. 일부 예들에서, 프리렌더링들의 수는 예를 들어, 옵션 메뉴에서 사용자에 의해 구성가능할 수 있다.
도 8은 본 개시내용의 실시형태들에 따른, 검색 결과 페이지 내에 내장된 프리렌더링 명령들을 프로세싱하기 위한 방법(800)의 예를 도시한 흐름도이다. 앞에서 설명된 바와 같이, 서버(104)는 클라이언트(102)에 의한 프로세싱을 위해 검색 결과 페이지 내에 프리렌더링 명령들을 내장시킬 수 있다. 클라이언트(102)는 프리렌더링을 위한 링크들을 선택하기 위해 검색 결과 페이지 내에 내장된 프리렌더링 명령들을 식별할 수 있다.
스테이지(802)에서, 검색 쿼리가 서버(104)에 전송된다. 앞에서 설명된 바와 같이, 검색 쿼리는 텍스트 스트링(text string)이거나, 파일이거나, 이미지이거나, 비디오이거나, 혹은 검색 결과들의 수신을 기대하며 콘텐츠를 식별시키는 임의의 다른 방법일 수 있다.
스테이지(804)에서, 검색 결과들이 수신된다. 이러한 검색 결과들은 스테이지(802)에서 전송된 검색 쿼리에 대한 응답이다. 검색 결과들은 앞에서 설명된 바와 같은(도 2 참조), 관련성에 의해 정렬된 일련의 텍스트 링크들로서 사용자에게 제시될 수 있다.
스테이지(806)에서는, 스테이지(804)에서 수신된 검색 결과들과 관련되어 프리렌더링 명령들이 식별된다. 예를 들어, 프리렌더링 명령들은 각각의 결과와 관련된 HTML 태그들에 포함될 수 있거나, 또는 프리렌더링 명령들은 다른 수단에 의해(예를 들어, AJAX 혹은 또 다른 메시징 프로토콜(messaging protocol)에 의해) 클라이언트(102)에게 전송될 수 있다. 예를 들어, 프리렌더링 태그들은 메시징 프로토콜에 의해 수신된 프리렌더링 명령들에 근거하여 클라이언트에 의해 검색 결과 페이지 상의 HTML 태그들 내에 동적으로 삽입될 수 있다. 프리렌더링 명령들은 복수의 링크들을 프리렌더링 후보들로서 식별할 수 있다. 복수의 프리렌더링 후보들이 식별되는 경우에, 프리렌더링 명령들은 또한, 프리렌더링 후보들의 순위를 식별할 수 있고, 이에 따라 순위가 가장 높은 결과들이 클라이언트에 의해 프리렌더링되게 된다. 클라이언트(102)는 프리렌더링 명령들 및 클라이언트의 이용가능한 시스템 리소스들에 근거하여 프리렌더링될 특정 개수 "n"개의 링크들을 식별할 수 있다(도 7 참조). 스테이지(808)에서는, 스테이지(806)에서 식별된 프리렌더링 명령들과 관련된 페이지들이 프리렌더링된다. 클라이언트(102)는 프리렌더링을 수행할지 여부를 결정할 때 다른 데이터를 인식할 수 있다. 예를 들어, 클라이언트(102)는 사용자가 링크를 선택했고 그 다음에 웹 브라우저 내에서 "뒤로(back)" 버튼을 눌렀음을 인식할 수 있다. 이에 따라, 사용자가 자신이 방금 떠난 동일 결과를 선택할 가능성은 없다. 따라서, 클라이언트(102)는 대신에, 그 다음 가장 가능성이 있는 프리렌더링 후보 검색 결과를 (클라이언트(102)가 방금 떠난 그 검색 결과 대신에) 프리렌더링할 수 있다.
스테이지(810)에서는, 검색 결과들 중 하나의 검색 결과에 관한 선택 동작이 수행된다. 선택 동작이 클라이언트(102)에 의해 프리렌더링된 링크 상에 반드시 있을 필요는 없다. 예를 들어, 사용자는 프리렌더링 명령들에 의해 식별된 링크와는 다른 링크를 선택할 수 있다. 다양한 이유로 사용자는 프리렌더링되지 않은 링크를 선택하고 싶어할 수 있는데, 왜냐하면 검색 쿼리에 응답하여 제공되는 결과들은 다양한 주제와 관련될 수 있고 사용자가 항상 가장 일반적으로 선택되는 검색 결과를 조회하고 싶어하지는 않을 수 있기 때문이다.
스테이지(812)에서는, 지표가 검색 결과의 선택과 관련되어 저장된다. 이러한 지표는 브라우저로 하여금 프리렌더링 동작의 정확도를 식별시키는 데이터를 추적할 수 있게 한다. 예를 들어, 최적의 환경에서, 사용자는 언제나 프리렌더링 명령과 관련된 링크를 선택한다. 사용자가 프리렌더링된 링크를 선택했는지 여부와 관련된 지표를 수집함으로써, 시스템은 프리렌더링에 대한 기준들(criteria)이 적절한지 여부(즉, 이들이 프리렌더링된 콘텐츠의 선택을 최대화시키는 반면 사용자가 프리렌더링된 콘텐츠를 선택할 가능성이 없는 경우의 프리렌더링을 최소화시킨다는 점에서 적절한지 여부)를 결정할 수 있다. 잘못 예측된 프리렌더링 동작들은 콘텐츠로 하여금 요청은 되지만 액세스는 되지 않는 결과를 일으킬 수 있다. 이로 인해, 결과적으로 대역폭이 낭비되며 프로세싱 파워가 낭비된다. 그러나, 사용자에 대한 혜택을 최대화시키기 위해 아울러 일관된 사용자 경험을 제공하기 위해, 프리렌더링은 실제 가능한 만큼 많은 검색 결과들에 관해 사용될 수 있다. 저장된 지표는 분석 및 프로세싱을 위해 서버(104)에 전송될 수 있거나, 또는 이러한 지표는 로컬 클라이언트 상에 저장될 수 있고 주기적으로 업로드(upload)될 수 있다. 이러한 방식으로 저장된 지표 데이터는 업로드 이전에 개인 사용자 데이터를 제거하기 위해 익명화된다. 프리렌더링 동작들과 관련된 지표를 획득하기 위한 방법은 아래에서 더 설명된다(도 10 참조)
도 9는 본 개시내용의 실시형태들에 따른, 프리렌더링 명령들을 검색 결과 페이지 내에 내장시키기 위한 방법(900)의 예를 도시한 흐름도이다. 방법(900)은 예를 들어, 서버(104) 상의 검색 엔진에 의해 제공되는 검색 결과들의 세트 내에 프리렌더링 명령들의 하나 이상의 세트들을 포함하도록 동작한다. 사용자에 의해 선택될 가능성이 있는 검색 결과들이 다양한 인자들을 사용하여 검색 결과들의 세트로부터 식별되고, 프리렌더링 명령들을 사용하여 가능성 있는 프리렌더링 후보들로서 표시된다. 이러한 검색 결과들은 클라이언트로부터 수신된 검색 쿼리에 응답하여 프리렌더링 명령들과 함께 클라이언트에게 제공될 수 있다.
스테이지(902)에서는, 검색 쿼리가 수신된다. 검색 쿼리는 검색 동작을 개시시키기에 충분한 임의의 기준들을 포함할 수 있다(예를 들어, 텍스트 스트링, 이미지 혹은 비디오와 같은 것). 검색 엔진은 검색 쿼리와 관련성이 있는 하나 이상의 결과들을 식별할 수 있다. 이러한 결과들은, 관련성 있는 콘텐츠를 포함하고 있는 페이지들에 대한 하이퍼링크들, 링크된 페이지들의 콘텐츠의 짧은 설명, 혹은 검색 쿼리에 응답하여 일반적으로 제공되는 임의의 다른 데이터를 포함할 수 있다.
스테이지(904)에서는, 프리렌더링 후보들이 검색 결과들 중에서 결정된다. 프리렌더링 후보들은, 검색 쿼리에 대한 각각의 결과의 관련성에 근거하여(예를 들어, 관련성이 더 높은 결과가 프리렌더링 후보가 될 가능성이 더 높음), 또는 쿼리에 대한 응답으로 사용자들이 전형적으로 어떤 링크를 선택하는지에 관한 통계 데이터에 근거하여, 또는 다른 기준들을 통해 결정될 수 있다. 검색 엔진은 또한, 검색 결과에 이르게 되는 트래픽의 양과 같은 웹 분석 데이터에 근거하여, 혹은 검색 결과의 호스트가 프리렌더링에 관해 탈퇴했는지 여부에 근거하여, 혹은 검색 결과와 관련된 콘텐츠의 양(예를 들어, 검색 결과 페이지의 파일 크기 또는 검색 결과 페이지 상에 저장되어 있는 데이터의 양 및 링크된 콘텐츠의 양)에 근거하여, 링크들을 프리렌더링 후보들로서 식별할 수 있다. 검색 결과가 경험하게 되는 트래픽의 양은 검색 엔진에 의해 검색 결과가 제공될 때 검색 결과를 선택한 사용자의 수에 근거하여 결정될 수 있다. 일부 실시형태들에서, 서버는 클라이언트의 네트워크 연결 속도를 인식할 수 있고, 프리렌더링될 링크들의 적절한 수를 이러한 클라이언트 연결 속도에 근거하여 표시할 수 있다.
프리렌더링 후보들은 하나 이상의 인자들 혹은 신호들을 사용하여 결정될 수 있다. 이러한 것은, 검색 쿼리에 대한 관련성, 프리렌더링 후보로서 포함되는 경우 사용자에 의한 선택의 빈도, 검색 결과와 관련된 트래픽의 양, 사용자의 위치, 사용자의 연결 속도, 검색 결과가 프리렌더링 프로세스에 관해 탈퇴했는지 여부, 그리고 검색 결과와 관련된 웹 페이지의 크기를 포함할 수 있지만 이러한 것으로만 한정되지는 않는다. 이러한 인자들 혹은 신호들에는 가중치들이 할당될 수 있고, 점수(score)를 발생시키기 위해 사용될 수 있는바, 이 경우 가장 높은 점수들과 관련된 결과들이 프리렌더링 후보들로서 식별되고 프리렌더링 명령들과 관련된다. 특정 임계치보다 더 높은 점수를 갖는 검색 결과들 모두가 프리렌더링 후보들로서 식별될 수 있거나, 혹은 단지 검색 결과들의 임의의 설정된 수만이 프리렌더링 후보들로서 식별될 수 있다.
스테이지(906)에서, 프리렌더링 명령들은 검색 결과 페이지 내에 내장된다(예를 들어, 프리렌더링 HTML 태그를 적절한 검색 결과들에 추가하는 것과 같은 것). 스테이지(908)에서는, 내장된 프리렌더링 명령들을 갖는 이러한 결과들이 클라이언트(102)에 제공된다.
도 10은 본 개시내용의 실시형태들에 따른, 프리렌더링 지표를 획득하기 위한 방법(1000)의 예를 도시한 흐름도이다. 프리렌더링 동작들에 대한 지표를 획득함으로써 서버(104)의 제어기들은 "허위 긍정(false positive)들"(이는 링크가 프리렌더링되지만 선택되지는 않는 경우임)을 최소화시키면서 최대의 정확도를 보장하기 위해 링크들이 프리렌더링 후보들로서 어떻게 식별되는지를 관리할 수 있게 한다. 프리렌더링 성능을 교정(calibrate)하기 위한 정확한 데이터를 수집하기 위해, 데이터는 데이터 수집 프로세스에 참여한 클라이언트들에 의해 제공될 수 있다. 획득된 모든 사용자 데이터에 대해서, 획득된 지표로부터 개인 사용자 데이터를 익명화 및 제거하기 위해 적절한 예방조치들이 취해진다. 지표 데이터를 제출하는 사용자들은 두 개의 그룹들로 분할될 수 있는바, 하나는 "제어(control)" 그룹으로 이 그룹은 프리렌더링 태그들을 수신하지만 실제로는 이들을 프리렌더링하지 않는 그룹이고, 다른 한 그룹은 "테스트(test)" 그룹으로 이 그룹은 실제로 프리렌더링 동작들을 수행하는 그룹이다.
잘못 예측된 선택들은 결과적으로, 검색 결과를 호스팅하는 페이지에 대해 그리고 프리렌더링을 수행하는 클라이언트에 대해 시스템 리소스들을 낭비하게 한다. 그러나, 일관된 사용자 혜택 및 최적의 사용자 경험을 제공하기 위해서는 커버리지(coverage)가 또한 충분히 높아야만 한다. 브라우저는 프리렌더링된 페이지가 언제 가시적인 브라우저 인스턴스로 스와핑되는지를 알 수 있고, 이에 따라 스와핑이 일어나는 때의 시간과 페이지가 완전히 로드되는 때의 시간 간의 시간차를 기록하는 것이 가능하게 된다. 이러한 값은 프리렌더링 동작에 의해 얼마나 많은 양의 시간이 절약됐는지를 표시한다.
제어 그룹은 검색 결과의 선택과 그 선택된 결과의 브라우저에서의 디스플레이 간의 시간의 양을 추적하기 위한 베이스라인(baseline)을 제공한다. 이 결과는 사용자들에 대한 프리렌더링 동작을 수행하는 전체 혜택을 결정하기 위해 임의의 프리렌더링된 페이지가 브라우저에서 디스플레이되기 위해 소요되는 시간의 양에 대비되어 비교될 수 있다. 다양한 링크들에 대해 프리렌더링 동작들을 활성화시킴으로써 절약되는 시간의 양을 결정함으로써, 최적의 시간의 양을 절약하는 링크들이 프리렌더링을 위해 선택될 수 있다. "허위 긍정"을 빈번하게 발생시키는 링크들, 혹은 그렇지 않다면 최적의 프리렌더링 성능 아래의 프리렌더링 성능을 빈번하게 발생시키는 링크들은 특정적으로 프리렌더링에 대한 나쁜 후보들로서 식별될 수 있다. 이러한 방식으로, 방법(1000)은 최대의 정확도 및 커버리지를 보장하기 위해 프리렌더링 동작을 정밀-조정(fine-tune)하는데 사용될 수 있는 지표를 제공한다.
스테이지(1002)에서, 클라이언트(102)는 검색 결과들의 세트를, 이러한 검색 결과들과 관련된 프리렌더링 명령들의 세트와 함께 수신한다. 만약 클라이언트(102)가 "테스트" 클라이언트라면, 프리렌더링 명령들과 관련된 검색 결과들은 숨겨진 브라우저 인스턴스에서 프리렌더링될 수 있다. 만약 클라이언트가 "제어" 클라이언트라면, 검색 결과들은 프리렌더링되지 않을 수 있다. "테스트" 클라이언트들은 하위-그룹들로 더 분할될 수 있다. 예를 들어, 테스트 클라이언트들 각각은 1번 내지 9번으로 번호가 부여된 하위-그룹에 포함될 수 있다. 이러한 하위-그룹들은 상이한 프리렌더링 기법들(예를 들어, 상이한 검색 결과 선택 방법들, 프리렌더링에 대한 상이한 임계치들)을 사용하여 각각의 프리렌더링 기법과 관련된 성능 혜택들을 결정할 수 있다. 특정의 테스트 식별자(test identifier)가, 예를 들어, 검색 결과 페이지의 어드레스에 "링크 프리렌더링 실험(Link Prerender Experiment)"(LPE) 항목을 첨부시킴으로써, 검색 결과 페이지의 어드레스 내에 클라이언트에 대해 특정될 수 있다. LPE 항목은 그 제공되는 검색 결과들이 관련되는 특정 프리렌더링 실험에 대해 임의의 값(예컨대, 1 내지 9와 같은 것)과 관련될 수 있다. 클라이언트는 프리렌더링 프로세스를 향상시키기 위해 지표의 저장시 LPE 항목을 축적할 수 있다.
스테이지(1004)에서는, 클라이언트와의 사용자 상호작용들이 특정 검색 결과의 선택에 대해 (예를 들어, 마우스 클릭, 터치 스크린 이벤트, 혹은 특정 결과에 관한 키보드 눌려짐을 통해) 모니터링된다.
스테이지(1006)에서는, 선택된 결과와 관련된 임의의 리다이렉션 식별자(redirection identifier)들이 식별된다. 검색 엔진은 검색 결과들을 디스플레이할 때 빈번하게 리다이렉션을 사용하는바, 검색 결과 페이지 내의 하이퍼링크는 검색 엔진 리다이렉션 페이지로 링크될 수 있고, 이는 프리렌더링되고 있는 실제 콘텐츠를 가리킨다. 리다이렉션 동작을 갖는 페이지가 "제어" 클라이언트를 사용하여 선택되는 경우, 본 방법은 리다이렉션 페이지가 리다이렉트(redirect)하는 결과 대신에 리다이렉션 페이지를 결과로서 식별할 수 있다. 지표가 리다이렉션 페이지가 아닌 실제 목적지 페이지의 로드 시간과 적절하게 관련됨을 보장하기 위해 리다이렉션 페이지의 타겟 어드레스가 프리렌더링 명령들 내에 특정될 수 있다. 이러한 방식으로, 클라이언트는 검색 결과 페이지 상에서 이러한 리다이렉션이 언제 일어나는지를 "알 수 있고(know)", 따라서 프리렌더링 "되었을(would)" 검색 결과 내의 어드레스에 대한 기록을 유지할 수 있으며, 이에 따라 실제 목적지 페이지의 페이지 로드 시간을 정확하게 기록할 수 있다.
테스트 클라이언트들이 실험 목적으로 하위-그룹들로 나누어지는 경우, 실험의 결과들을 추적하기 위해 리다이렉션 식별자들이 이용될 수 있다. 예를 들어, 검색 결과들의 세트는, (예를 들어, 프리렌더링될 링크들을 선택하기 위한 특정 알고리즘을 특정하는) 소정의 테스트 식별자 및 프리렌더링 명령들의 소정의 세트와 관련될 수 있다. 사용자가, 제시되는 링크들 중 하나의 링크를 선택하는 경우, 그 선택된 링크와 관련된 리다이렉션 링크는, 실험 하위-그룹(예를 들어, 1번 내지 9번), 선택된 링크, 검색 쿼리, 그리고 선택된 링크가 프리렌더링되었는지 여부를 표시할 수 있다.
스테이지(1008)에서는, 선택된 결과 페이지의 로드 시간이 측정된다. 이러한 로드 시간은 사용자가 검색 결과를 선택하는 때로부터 검색 결과가 브라우저 내에 완전히 로드되는 시간까지의 그러한 시간과 관련된다. "제어" 클라이언트에서, 이러한 로드 시간은 콘텐츠를 호스팅하는 서버로부터 네트워크를 통해 검색 결과와 관련된 콘텐츠를 요청하고 해당 콘텐츠를 브라우저 내에 렌더링하는 동작들을 포함한다. "테스트" 클라이언트에서, 로드 시간은 프리렌더링 동작 동안 수신되지 않은 임의의 콘텐츠를 요청하고 해당 콘텐츠를 브라우저 내에 디스플레이하는데 소요되는 시간을 포함한다. 전형적으로, "테스트" 클라이언트와 관련된 로드 시간은 "제어" 클라이언트와 관련된 로드 시간보다 더 작아야만 하는데, 왜냐하면 "테스트" 클라이언트는 트랜잭션(transaction)의 네트워크 콘텐츠 요청 부분에 있어 앞서있기 때문이다. "테스트" 클라이언트들에 대한 로드 시간과 "제어" 클라이언트들에 대한 로드 시간을 비교하는 것은, 프리렌더링 동작에 의해 얼마나 많은 양의 시간이 사용자들에 대해 절약되는지에 관한 광범위한 그림(broad picture)을 제공한다.
스테이지(1010)에서는, 검색 결과 선택, 검색 결과 선택이 프리렌더링되었는지 여부, LPE 번호, 및 검색 결과 선택의 로드 시간이 지표로서 저장된다. 이러한 지표는 프리렌더링 명령들의 정확도(예를 들어, 프리렌더링된 검색 결과가 선택되었는지 여부) 및 프리렌더링 명령들에 의해 절약되는 시간의 양(예를 들어, "제어" 클라이언트들과 "테스트" 클라이언트들에서의 로드 시간들 간의 차이)을 표시하는 데이터를 제공한다. 이러한 지표는 분석을 위해 서버(104)로 바로 업로드될 수 있거나, 혹은 서버(104)로의 주기적 업로드를 위해 클라이언트(102) 상에 저장될 수 있다. 서버(104)는 프리렌더링될 특정 결과들을 식별하기 위해 지표에 관한 자동 프로세싱을 수행할 수 있다(예를 들어, 프리렌더링 정확도가 낮은 검색 결과들로부터 프리렌더링 명령들을 제거하는 것과 같은 것).
예시된 방법들의 스테이지들은 한정의 의미로서 의도된 것이 아니다. 이러한 방법들의 기능은 제시된 것보다 더 적거나 더 많은 수의 스테이지들 내에 존재할 수 있으며, 도시된 방법들에 있어서도, 이벤트들의 특정 순서는 도면들에 제시된 것과는 다를 수 있다.
본 명세서에서 설명되는 시스템들 및 방법들은 검색 결과 페이지들의 프리렌더링을 위한 향상된 방법 및 시스템을 유리하게 제공한다. 프리렌더링 명령들을 검색 결과 페이지들 내에 내장시킴으로써, 사용자가 선택할 가능성이 있는 검색 결과들에 대한 대기 시간을 감소시켜 사용자 경험은 향상될 수 있다. 검색 엔진은 사이트 트래픽, 결과 관련성, 특정 검색 쿼리, 네비게이션 데이터의 히스토리, 및 (커버리지 및 정확도를 최대화시킴과 아울러 허위 긍정들 및 대역폭 낭비를 최소화시키는 프리렌더링 명령들을 제공하기 위한) 다른 지표와 같은 변수들을 고려할 수 있기 때문에, 검색 엔진은 이러한 방식으로 프리렌더링 명령들을 제공하는데 매우 적합하다. 검색 엔진은 또한 프리렌더링 경험을 향상시키기 위해 사용되는 지표를 수집하는 클라이언트 디바이스들과 통신할 수 있다.
앞서 논의된 특징들의 이러한 변형들과 조합들 및 다른 변형들과 조합들은 특허청구범위에 의해 정의되는 바와 같은 본 개시내용으로부터 벗어남이 없이 활용될 수 있기 때문에, 이러한 실시예들의 앞서의 설명은 특허청구범위에 의해 정의되는 바와 같은 본 개시내용을 한정하는 것이 아니라 예시적으로 고려돼야만 한다. 본 개시내용의 예들(뿐만 아니라 "예를 들어", "예컨대", "포함하는" 등으로 표현된 설명부분)의 제공은 본 개시내용을 이러한 특정 예들에 한정시키려는 것으로 해석돼서는 안 되면, 오히려 이러한 예들은 다수의 가능한 실시예들 중 단지 일부만을 예시하도록 의도된 것임을 또한 이해해야 한다.

Claims (20)

  1. 컴퓨터로 구현되는, 검색 결과 페이지(search result page)를 사용하여 프리렌더링(prerendering)을 하기 위한 방법으로서,
    하나 또는 둘 이상의 프로세서(processor)들을 사용하여, 검색 쿼리(search query)에 응답하는 적어도 하나의 검색 결과 중 가장 높은 순위의 검색 결과에 관련된 검색 결과 페이지 내에 내장된 하나 또는 둘 이상의 프리렌더링 명령(instruction)들을 식별하는 단계 ― 각각의 검색 결과는 연관된 네트워크 콘텐츠를 가짐 ―;
    상기 하나 또는 둘 이상의 프로세서들을 사용하여, 상기 하나 또는 둘 이상의 프리렌더링 명령들에 기초하여 프리렌더링될 상기 가장 높은 순위의 검색 결과의 연관된 네트워크 콘텐츠를 식별하는 단계;
    상기 하나 또는 둘 이상의 프로세서들을 사용하여, 상기 하나 또는 둘 이상의 프리렌더링 명령들에 따라 상기 가장 높은 순위의 검색 결과의 상기 연관된 네트워크 콘텐츠의 적어도 일부를 프리렌더링 하는 단계;
    상기 하나 또는 둘 이상의 프로세서들을 사용하여, 상기 가장 높은 순위의 검색 결과가 액세스되는 것을 결정하는 단계; 및
    상기 가장 높은 순위의 검색 결과가 액세스 된 경우, 상기 가장 높은 순위의 검색 결과의 연관된 네트워크 콘텐츠의 프리렌더링 된 부분을 디스플레이를 위하여 제공하는 단계를 포함하는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 방법.
  2. 제1항에 있어서,
    상기 제공하는 단계는, 상기 연관된 네트워크 콘텐츠의 프리렌더링 된 부분을 활성 브라우저 인스턴스(active browser instance)로 스와핑(swapping)하는 단계를 포함하는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 방법.
  3. 제1항에 있어서,
    상기 프리렌더링하는 단계는,
    숨겨진 브라우저 인스턴스(hidden browser instance)와 연관된 시스템의 시스템 능력들(system capabilities)을 측정하는 단계; 및
    상기 시스템 능력들에 기초하여 프리렌더링 하기 위한 상기 연관된 네트워크 콘텐츠의 최대 양(amount)을 결정하는 단계를 더 포함하는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 방법.
  4. 제1항에 있어서,
    상기 가장 높은 순위의 검색 결과는 적어도 상기 검색 쿼리에 대한 상기 검색 결과의 관련성에 기초하여 결정되는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 방법.
  5. 검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 시스템으로서, 상기 시스템은,
    메모리; 및
    상기 메모리에 결합되는 하나 또는 둘 이상의 프로세서들을 포함하고,
    상기 하나 또는 둘 이상의 프로세서들은,
    검색 쿼리에 응답하는 적어도 하나의 검색 결과 중 가장 높은 순위의 검색 결과에 관련된 검색 결과 페이지 내에 내장된 하나 또는 둘 이상의 프리렌더링 명령들을 식별하고 ― 각각의 검색 결과는 연관된 네트워크 콘텐츠를 가짐 ―;
    상기 하나 또는 둘 이상의 프리렌더링 명령들에 기초하여 프리렌더링될 상기 가장 높은 순위의 검색 결과의 연관된 네트워크 콘텐츠를 식별하고;
    상기 하나 또는 둘 이상의 프리렌더링 명령들에 따라 상기 가장 높은 순위의 검색 결과의 상기 연관된 네트워크 콘텐츠의 적어도 일부를 프리렌더링 하는 단계;
    상기 가장 높은 순위의 검색 결과가 액세스되는 것을 결정하고; 그리고
    상기 가장 높은 순위의 검색 결과가 액세스 된 경우, 상기 가장 높은 순위의 검색 결과의 연관된 네트워크 콘텐츠의 프리렌더링 된 부분을 디스플레이를 위하여 제공하도록 구성되는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 시스템.
  6. 제5항에 있어서,
    상기 제공하는 것은, 상기 연관된 네트워크 콘텐츠의 프리렌더링 된 부분을 활성 브라우저 인스턴스로 스와핑하는 것을 포함하는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 시스템.
  7. 제5항에 있어서,
    상기 프리렌더링하는 것은,
    시스템 능력들을 측정하는 것; 및
    상기 시스템 능력들에 기초하여 프리렌더링 하기 위한 상기 연관된 네트워크 콘텐츠의 최대 양을 결정하는 것을 더 포함하는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 시스템.
  8. 제5항에 있어서,
    상기 하나 또는 둘 이상의 프로세서들은,
    상기 연관된 네트워크 콘텐츠의 프리렌더링 된 부분이, 제공될 때 선택되었는지 여부를 표시하는 지표들(metrics)을 수신하고; 그리고
    상기 지표들에 기초하여 장래의 프리렌더링 후보들을 식별하도록 추가로 구성되는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 시스템.
  9. 컴퓨터로 구현되는, 검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 방법으로서,
    하나 또는 둘 이상의 프로세서들에 의해, 검색 쿼리에 대한 상기 검색 결과 페이지를 생성하는 단계 ― 상기 검색 결과 페이지는 제 1 검색 결과를 포함하고, 상기 제 1 검색 결과는 연관된 네트워크 콘텐츠를 가짐 ―;
    상기 하나 또는 둘 이상의 프로세서들에 의해, 상기 제 1 검색 결과가 상기 검색 쿼리에 대한 가장 높은 순위의 검색 결과임을 결정하는 단계;
    상기 하나 또는 둘 이상의 프로세서들에 의해, 상기 검색 결과 페이지 내에 상기 제 1 검색 결과에 대한 프리렌더링 명령들을 내장하는 단계 ― 상기 프리렌더링 명령들은 상기 검색 결과 페이지가 디스플레이될 때 상기 제 1 검색 결과의 연관된 네트워크 콘텐츠 중 적어도 일부를 로드(load)하기 위한 명령들을 포함함 ―; 및
    상기 하나 또는 둘 이상의 프로세서들에 의해, 상기 검색 결과 페이지를 클라이언트 디바이스로 제공하는 단계를 포함하는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 방법.
  10. 제9항에 있어서,
    상기 검색 결과 페이지는 상기 검색 쿼리를 수신하는 것에 응답하여 생성되는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 방법.
  11. 제9항에 있어서,
    상기 프리렌더링 명령들은 클라이언트 측 스크립팅(client side scripting)을 통해 상기 클라이언트 디바이스에 제공되는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 방법.
  12. 제9항에 있어서,
    상기 하나 또는 둘 이상의 프로세서들에 의해, 상기 검색 결과 페이지로부터 상기 제 1 검색 결과가 액세스 되었는지 여부를 표시하는 지표들을 상기 클라이언트 디바이스로부터 수신하는 단계; 및
    상기 하나 또는 둘 이상의 프로세서들에 의해, 장래의 프리렌더링 명령들을 내장시키기 위해 상기 지표들을 사용하는 단계를 더 포함하는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 방법.
  13. 제9항에 있어서,
    상기 하나 또는 둘 이상의 프로세서들에 의해, 상기 검색 결과 페이지 내에 실험 식별자(experiment identifier)를 내장시키는 단계 ― 상기 실험 식별자는 프리렌더링하기 위해 검색 결과를 결정하도록 사용되는 특정 방법에 대응됨 ―; 및
    상기 하나 또는 둘 이상의 프로세서들에 의해, 선택 동작과 관련된 상기 실험 식별자를 식별하기 위해, 그리고 상기 제 1 검색 결과가 선택되었는지 여부를 식별하기 위해, 상기 검색 결과 페이지와 연관된 하나 또는 둘 이상의 리다이렉션 동작(redirection operation)들을 사용하는 단계를 더 포함하는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 방법.
  14. 제9항에 있어서,
    상기 가장 높은 순위의 검색 결과는 적어도 상기 검색 쿼리에 대한 상기 검색 결과의 관련성에 기초하여 결정되는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 방법.
  15. 검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 시스템으로서, 상기 시스템은,
    메모리; 및
    상기 메모리에 결합된 하나 또는 둘 이상의 프로세서들을 포함하고,
    상기 하나 또는 둘 이상의 프로세서들은,
    검색 쿼리에 대한 상기 검색 결과 페이지를 생성하고 ― 상기 검색 결과 페이지는 제 1 검색 결과를 포함하고, 상기 제 1 검색 결과는 연관된 네트워크 콘텐츠를 가짐 ―;
    상기 제 1 검색 결과가 상기 검색 쿼리에 대한 가장 높은 순위의 검색 결과임을 결정하고;
    상기 검색 결과 페이지 내에 상기 제 1 검색 결과에 대한 프리렌더링 명령들을 내장하고 ― 상기 프리렌더링 명령들은 상기 검색 결과 페이지가 디스플레이될 때 상기 제 1 검색 결과의 연관된 네트워크 콘텐츠 중 적어도 일부를 로드하기 위한 명령들을 포함함 ―; 그리고
    상기 검색 결과 페이지를 클라이언트 디바이스로 제공하도록 구성되는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 시스템.
  16. 제15항에 있어서,
    상기 검색 결과 페이지는 상기 검색 쿼리를 수신하는 것에 응답하여 생성되는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 시스템.
  17. 제15항에 있어서,
    상기 프리렌더링 명령들은 클라이언트 측 스크립팅을 통해 상기 클라이언트 디바이스에 제공되는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 시스템.
  18. 제15항에 있어서,
    상기 하나 또는 둘 이상의 프로세서들은,
    상기 검색 결과 페이지로부터 상기 제 1 검색 결과가 액세스 되었는지 여부를 표시하는 지표들을 상기 클라이언트 디바이스로부터 수신하고; 그리고
    장래의 프리렌더링 명령들을 내장시키기 위해 상기 지표들을 사용하도록 추가로 구성되는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 시스템.
  19. 제15항에 있어서,
    상기 하나 또는 둘 이상의 프로세서들은,
    상기 검색 결과 페이지 내에 실험 식별자를 내장시키고 ― 상기 실험 식별자는 프리렌더링하기 위해 검색 결과를 결정하도록 사용되는 특정 방법에 대응됨 ―; 그리고
    선택 동작과 관련된 상기 실험 식별자를 식별하기 위해, 그리고 상기 제 1 검색 결과가 선택되었는지 여부를 식별하기 위해, 상기 검색 결과 페이지와 연관된 하나 또는 둘 이상의 리다이렉션 동작들을 사용하도록 추가로 구성되는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 시스템.
  20. 제15항에 있어서,
    상기 하나 또는 둘 이상의 프로세서들은,
    상기 하나 또는 둘 이상의 프로세서들에 의해, 상기 검색 결과 페이지 내에 포함된 제 2 검색 결과가 상기 검색 쿼리에 대한 두번째로 높은 순위의 검색 결과임을 결정하고; 그리고
    상기 하나 또는 둘 이상의 프로세서들에 의해, 상기 검색 결과 페이지 내에 상기 제 2 검색 결과에 대한 제 2 프리렌더링 명령들을 내장시키도록 추가로 구성되는,
    검색 결과 페이지를 사용하여 프리렌더링을 하기 위한 시스템.
KR1020187016198A 2012-01-19 2013-01-17 검색 결과에 대한 액세스를 향상시키기 위한 시스템 및 방법 KR101891488B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/353,626 2012-01-19
US13/353,626 US8793235B2 (en) 2012-01-19 2012-01-19 System and method for improving access to search results
PCT/US2013/021927 WO2013109744A1 (en) 2012-01-19 2013-01-17 System and method for improving access to search results

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020177005034A Division KR101867809B1 (ko) 2012-01-19 2013-01-17 검색 결과에 대한 액세스를 향상시키기 위한 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20180066280A true KR20180066280A (ko) 2018-06-18
KR101891488B1 KR101891488B1 (ko) 2018-08-27

Family

ID=48798082

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020187016198A KR101891488B1 (ko) 2012-01-19 2013-01-17 검색 결과에 대한 액세스를 향상시키기 위한 시스템 및 방법
KR1020147022922A KR101711456B1 (ko) 2012-01-19 2013-01-17 검색 결과에 대한 액세스를 향상시키기 위한 시스템 및 방법
KR1020177005034A KR101867809B1 (ko) 2012-01-19 2013-01-17 검색 결과에 대한 액세스를 향상시키기 위한 시스템 및 방법

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020147022922A KR101711456B1 (ko) 2012-01-19 2013-01-17 검색 결과에 대한 액세스를 향상시키기 위한 시스템 및 방법
KR1020177005034A KR101867809B1 (ko) 2012-01-19 2013-01-17 검색 결과에 대한 액세스를 향상시키기 위한 시스템 및 방법

Country Status (7)

Country Link
US (3) US8793235B2 (ko)
EP (1) EP2805265B1 (ko)
JP (4) JP6013514B2 (ko)
KR (3) KR101891488B1 (ko)
CN (2) CN104067274A (ko)
AU (3) AU2013209728B2 (ko)
WO (1) WO2013109744A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102349495B1 (ko) * 2020-11-18 2022-01-11 쿠팡 주식회사 가상 서버들로부터 대용량 로그 파일들을 프로세싱하는 컴퓨터 시스템 및 방법.

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924799B2 (en) * 2012-04-16 2014-12-30 Yahoo! Inc. Method and system for providing a predefined content to a user
US9892198B2 (en) * 2012-06-07 2018-02-13 Oath Inc. Page personalization performed by an edge server
US20140156626A1 (en) * 2012-11-30 2014-06-05 Microsoft Corporation Embedded externally hosted content in search result page
US9002821B2 (en) 2013-01-16 2015-04-07 Google Inc. Indexing application pages of native applications
US8996520B2 (en) 2013-03-15 2015-03-31 Google Inc. Ranking of native application content
US9146972B2 (en) 2013-03-15 2015-09-29 Google Inc. Ranking of presentation modes for particular content
US9135346B2 (en) 2013-06-07 2015-09-15 Google Inc. Index data for native applications
US9311407B2 (en) 2013-09-05 2016-04-12 Google Inc. Native application search results
RU2583739C2 (ru) * 2013-10-16 2016-05-10 Общество С Ограниченной Ответственностью "Яндекс" Сервер для определения поисковой выдачи на поисковый запрос и электронное устройство
US9043696B1 (en) 2014-01-03 2015-05-26 Palantir Technologies Inc. Systems and methods for visual definition of data associations
US9608870B1 (en) 2014-02-28 2017-03-28 Google Inc. Deep link verification for native applications
US9251224B2 (en) 2014-03-04 2016-02-02 Google Inc. Triggering and ranking of native applications
US9652508B1 (en) 2014-03-05 2017-05-16 Google Inc. Device specific adjustment based on resource utilities
US10061796B2 (en) 2014-03-11 2018-08-28 Google Llc Native application content verification
US9645980B1 (en) 2014-03-19 2017-05-09 Google Inc. Verification of native applications for indexing
US9524347B1 (en) 2014-04-01 2016-12-20 Google Inc. Automatically implementing an application in response to a search query
US9513961B1 (en) 2014-04-02 2016-12-06 Google Inc. Monitoring application loading
US9576070B2 (en) 2014-04-23 2017-02-21 Akamai Technologies, Inc. Creation and delivery of pre-rendered web pages for accelerated browsing
US9495405B2 (en) * 2014-04-28 2016-11-15 International Business Machines Corporation Big data analytics brokerage
US9767159B2 (en) 2014-06-13 2017-09-19 Google Inc. Ranking search results
US10013496B2 (en) 2014-06-24 2018-07-03 Google Llc Indexing actions for resources
RU2710293C2 (ru) 2014-06-24 2019-12-25 Гугл Инк. Поисковые результаты для нативных приложений
US10210263B1 (en) 2014-06-24 2019-02-19 Google Llc Native application search results
EP3161678B1 (en) 2014-06-25 2020-12-16 Google LLC Deep links for native applications
US9892190B1 (en) 2014-06-25 2018-02-13 Google Inc. Search suggestions based on native application history
EP3161668B1 (en) 2014-06-26 2020-08-05 Google LLC Batch-optimized render and fetch architecture
WO2015196410A1 (en) 2014-06-26 2015-12-30 Google Inc. Optimized browser render process
CN104239562A (zh) * 2014-09-26 2014-12-24 可牛网络技术(北京)有限公司 网页显示方法和装置
CN104281677A (zh) * 2014-09-29 2015-01-14 百度在线网络技术(北京)有限公司 页面的展现方法及装置
CN105808606B (zh) * 2014-12-31 2020-05-15 北京奇虎科技有限公司 一种移动设备上的搜索方法和装置
US10812580B2 (en) * 2015-01-30 2020-10-20 Akamai Technologies, Inc. Using resource timing data for server push
US10313463B2 (en) 2015-02-19 2019-06-04 Akamai Technologies, Inc. Systems and methods for avoiding server push of objects already cached at a client
RU2015111360A (ru) 2015-03-30 2016-10-20 Общество С Ограниченной Ответственностью "Яндекс" Способ (варианты) и система (варианты) обработки поискового запроса
US9952916B2 (en) * 2015-04-10 2018-04-24 Microsoft Technology Licensing, Llc Event processing system paging
US20160314215A1 (en) * 2015-04-21 2016-10-27 Google Inc. Generating mobile-friendliness scores for resources
US9348671B1 (en) 2015-07-23 2016-05-24 Google Inc. Monitoring application loading
US10120949B2 (en) * 2015-10-29 2018-11-06 Google Llc Indexing native application data
US10726077B1 (en) * 2016-02-05 2020-07-28 Nativo, Inc. Server side content page re-rendering
US10341417B2 (en) * 2016-03-23 2019-07-02 Oath Inc. Target webpage performance
US10324990B2 (en) * 2016-03-23 2019-06-18 International Business Machines Corporation Providing continued searching and associated indicators
US10452724B2 (en) * 2016-05-18 2019-10-22 Google Llc Attribution model for content item conversions
US11580186B2 (en) 2016-06-14 2023-02-14 Google Llc Reducing latency of digital content delivery over a network
CN106127514A (zh) * 2016-06-21 2016-11-16 武汉斗鱼网络科技有限公司 一种用于直播网站的广告展示方法及装置
US10142252B2 (en) * 2016-06-24 2018-11-27 Verizon Patent And Licensing Inc. Server intelligence for network speed testing control
US11526521B2 (en) * 2016-07-15 2022-12-13 Microsoft Technology Licensing, Llc Prefetching using dynamic user model to reduce latency
US20180114033A1 (en) * 2016-10-20 2018-04-26 Salesforce.Com, Inc. Controlled execution of queries for protecting sensitive data in query responses in an on-demand services environment
CN107977272A (zh) 2016-10-25 2018-05-01 腾讯科技(深圳)有限公司 应用运行的方法及装置
CN106790356A (zh) * 2016-11-15 2017-05-31 广东欧珀移动通信有限公司 一种数据备份、下载方法及相关设备
CN110088752B (zh) * 2016-12-16 2023-07-18 谷歌有限责任公司 内容搜索引擎
GB2564165B (en) * 2017-02-02 2021-11-24 Google Llc Custom digital components
JP6568985B2 (ja) * 2018-06-12 2019-08-28 グーグル エルエルシー バッチ最適化レンダリング及びフェッチアーキテクチャ
US11042426B2 (en) 2018-08-23 2021-06-22 International Business Machines Corporation Utilizing reusable AJAX requests
CN109271580B (zh) * 2018-11-21 2022-04-01 百度在线网络技术(北京)有限公司 搜索方法、装置、客户端和搜索引擎
EP3759595B1 (en) * 2019-05-06 2021-08-25 Google LLC Proactive caching of transient assistant action suggestions at a feature phone
US11308100B2 (en) 2019-06-25 2022-04-19 Amazon Technologies, Inc. Dynamically assigning queries to secondary query processing resources
CN112417264B (zh) * 2019-08-23 2024-01-30 腾讯科技(深圳)有限公司 一种信息搜索的方法及装置
JP7039045B2 (ja) 2019-08-26 2022-03-22 株式会社フェニックスバイオ ヒト脂肪肝モデル細胞
CN110704275B (zh) * 2019-09-09 2021-03-19 北京房江湖科技有限公司 终端app的标记数量显示方法、装置、存储介质及处理器
CN111444408B (zh) * 2020-03-26 2021-09-14 腾讯科技(深圳)有限公司 网络搜索处理方法、装置、电子设备
CN112100481A (zh) * 2020-09-25 2020-12-18 百度国际科技(深圳)有限公司 搜索方法、搜索装置、电子设备和存储介质
CN112084395A (zh) * 2020-09-25 2020-12-15 百度国际科技(深圳)有限公司 搜索方法、搜索装置、电子设备和存储介质
US11790003B2 (en) 2020-11-30 2023-10-17 Red Hat, Inc. Client-based search query autocomplete
US11263821B1 (en) * 2021-01-20 2022-03-01 Google Llc Generating augmented reality prerenderings using template images
US20220244820A1 (en) * 2021-02-02 2022-08-04 Taboola.Com Ltd In-page navigation
CN112905927A (zh) * 2021-03-19 2021-06-04 北京字节跳动网络技术有限公司 一种搜索方法、装置、设备及介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047502B2 (en) * 2001-09-24 2006-05-16 Ask Jeeves, Inc. Methods and apparatus for mouse-over preview of contextually relevant information
JP2006235760A (ja) * 2005-02-22 2006-09-07 Nippon Telegr & Teleph Corp <Ntt> 情報閲覧システム、方法およびプログラム
US20070220010A1 (en) * 2006-03-15 2007-09-20 Kent Thomas Ertugrul Targeted content delivery for networks
US7277924B1 (en) * 2002-05-07 2007-10-02 Oracle International Corporation Method and mechanism for a portal website architecture
KR20080111822A (ko) * 2007-06-20 2008-12-24 강정욱 사용자 검색어를 연동하여 가이드 정보, 랭킹 정보를제공하는 검색지원 정보 시스템.
US20100005061A1 (en) * 2008-07-01 2010-01-07 Stephen Basco Information processing with integrated semantic contexts
US7747749B1 (en) 2006-05-05 2010-06-29 Google Inc. Systems and methods of efficiently preloading documents to client devices
JP2010186295A (ja) * 2009-02-12 2010-08-26 Nec Corp 情報検索システム及び情報検索方法並びにプログラム
KR20100112512A (ko) * 2009-04-09 2010-10-19 (주)아이오다인 검색 장치 및 검색 방법
US20110029518A1 (en) * 2003-06-10 2011-02-03 Google Inc. Document search engine including highlighting of confident results
WO2011031102A2 (en) * 2009-09-13 2011-03-17 Samsung Electronics Co., Ltd. Search method, apparatus, and system for providing preview information
US20110173569A1 (en) * 2010-01-13 2011-07-14 Rockmelt, Inc. Preview Functionality for Increased Browsing Speed

Family Cites Families (131)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467137B1 (en) 1994-09-02 2008-12-16 Wolfe Mark A System and method for information retrieval employing a preloading procedure
US6604103B1 (en) 1994-09-02 2003-08-05 Mark A. Wolfe System and method for information retrieval employing a preloading procedure
US5715445A (en) 1994-09-02 1998-02-03 Wolfe; Mark A. Document retrieval system employing a preloading procedure
US7103594B1 (en) 1994-09-02 2006-09-05 Wolfe Mark A System and method for information retrieval employing a preloading procedure
US5727129A (en) 1996-06-04 1998-03-10 International Business Machines Corporation Network system for profiling and actively facilitating user activities
US6256712B1 (en) 1997-08-01 2001-07-03 International Business Machines Corporation Scaleable method for maintaining and making consistent updates to caches
US6012052A (en) 1998-01-15 2000-01-04 Microsoft Corporation Methods and apparatus for building resource transition probability models for use in pre-fetching resources, editing resource link topology, building resource link topology templates, and collaborative filtering
US6055569A (en) 1998-01-27 2000-04-25 Go Ahead Software Inc. Accelerating web access by predicting user action
IL125432A (en) 1998-01-30 2010-11-30 Easynet Access Inc Personalized internet interaction
US6182133B1 (en) 1998-02-06 2001-01-30 Microsoft Corporation Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching
US6100871A (en) 1998-04-29 2000-08-08 Multitude, Inc. Dynamic pointer having time-dependent informational content
US6098064A (en) 1998-05-22 2000-08-01 Xerox Corporation Prefetching and caching documents according to probability ranked need S list
WO2000013104A1 (en) 1998-08-26 2000-03-09 Symtec Limited Methods and devices for mapping data files
JP2000132450A (ja) 1998-10-29 2000-05-12 Mitsubishi Electric Corp データ制御装置及びデータ制御方法
JP3912464B2 (ja) 1998-11-13 2007-05-09 セイコーエプソン株式会社 画面表示データ読込装置
US6842782B1 (en) 1998-12-08 2005-01-11 Yodlee.Com, Inc. Method and apparatus for tracking functional states of a web-site and reporting results to web developers
US7428701B1 (en) 1998-12-18 2008-09-23 Appligent Inc. Method, system and computer program for redaction of material from documents
US6976090B2 (en) 2000-04-20 2005-12-13 Actona Technologies Ltd. Differentiated content and application delivery via internet
US20050055426A1 (en) 2000-06-12 2005-03-10 Kim Smith System, method and computer program product that pre-caches content to provide timely information to a user
US6717600B2 (en) 2000-12-15 2004-04-06 International Business Machines Corporation Proximity selection of selectable item in a graphical user interface
US20080059532A1 (en) * 2001-01-18 2008-03-06 Kazmi Syed N Method and system for managing digital content, including streaming media
US20030193994A1 (en) 2001-03-21 2003-10-16 Patrick Stickler Method of managing media components
US7246104B2 (en) 2001-03-21 2007-07-17 Nokia Corporation Method and apparatus for information delivery with archive containing metadata in predetermined language and semantics
US6954749B2 (en) 2002-10-07 2005-10-11 Metatomix, Inc. Methods and apparatus for identifying related nodes in a directed graph having named arcs
US7584418B2 (en) 2001-05-31 2009-09-01 Oracle International Corporation Methods, systems, and articles of manufacture for prefabricating an information page
US7716332B1 (en) 2001-06-20 2010-05-11 At&T Intellectual Property I, L.P. System and method for server-based predictive caching of back-end system data
BR0210589A (pt) * 2001-06-22 2005-04-26 Nosa Omoigui Sistema e método para a recuperação, o gerenciamento, a entrega e a apresentação do conhecimento
US7003566B2 (en) 2001-06-29 2006-02-21 International Business Machines Corporation Method and system for predictive directional data caching
US6766422B2 (en) 2001-09-27 2004-07-20 Siemens Information And Communication Networks, Inc. Method and system for web caching based on predictive usage
US6871218B2 (en) 2001-11-07 2005-03-22 Oracle International Corporation Methods and systems for preemptive and predictive page caching for improved site navigation
US7159025B2 (en) 2002-03-22 2007-01-02 Microsoft Corporation System for selectively caching content data in a server based on gathered information and type of memory in the server
US6993586B2 (en) 2002-05-09 2006-01-31 Microsoft Corporation User intention modeling for web navigation
US7139798B2 (en) 2002-05-17 2006-11-21 Groove Networks, Inc. Method and apparatus for connecting a secure peer-to-peer collaboration system to an external system
DE60216980D1 (de) 2002-06-10 2007-02-01 Caplin Systems Ltd Client-server kommunikationssystem
US20040031052A1 (en) 2002-08-12 2004-02-12 Liberate Technologies Information platform
US8005919B2 (en) 2002-11-18 2011-08-23 Aol Inc. Host-based intelligent results related to a character stream
US7401072B2 (en) 2003-06-10 2008-07-15 Google Inc. Named URL entry
US7281202B2 (en) 2003-06-19 2007-10-09 Microsoft Corporation Framework for creating modular web applications
US8346587B2 (en) 2003-06-30 2013-01-01 Microsoft Corporation Models and methods for reducing visual complexity and search effort via ideal information abstraction, hiding, and sequencing
US8103742B1 (en) 2003-11-24 2012-01-24 Amazon Technologies, Inc. Deferred and off-loaded rendering of selected portions of web pages to incorporate late-arriving service data
US7774721B2 (en) 2003-12-15 2010-08-10 Microsoft Corporation Intelligent backward resource navigation
US7614004B2 (en) 2003-12-15 2009-11-03 Microsoft Corporation Intelligent forward resource navigation
US7483941B2 (en) 2004-01-13 2009-01-27 International Business Machines Corporation System and method for dynamically inserting prefetch tags by the web server
US7155336B2 (en) 2004-03-24 2006-12-26 A9.Com, Inc. System and method for automatically collecting images of objects at geographic locations and displaying same in online directories
US7539674B2 (en) 2004-04-08 2009-05-26 Yahoo! Inc. Systems and methods for adaptive scheduling of references to documents
US7950026B1 (en) 2004-06-24 2011-05-24 Julian Michael Urbach Virtual application execution system and method
US7558822B2 (en) 2004-06-30 2009-07-07 Google Inc. Accelerating user interfaces by predicting user actions
US7249005B2 (en) * 2004-08-17 2007-07-24 Dirtt Environmental Solutions Ltd. Design software incorporating efficient 3-D rendering
US7761814B2 (en) 2004-09-13 2010-07-20 Microsoft Corporation Flick gesture
US20060064411A1 (en) 2004-09-22 2006-03-23 William Gross Search engine using user intent
KR101225292B1 (ko) 2004-09-27 2013-01-22 비티 웹 솔루션즈, 엘엘씨 보강된 브라우징을 위한 방법 및 장치
US20060143568A1 (en) 2004-11-10 2006-06-29 Scott Milener Method and apparatus for enhanced browsing
US7499940B1 (en) 2004-11-11 2009-03-03 Google Inc. Method and system for URL autocompletion using ranked results
US7321655B2 (en) 2005-02-07 2008-01-22 Adomo, Inc. Caching user information in an integrated communication system
US7480669B2 (en) 2005-02-15 2009-01-20 Infomato Crosslink data structure, crosslink database, and system and method of organizing and retrieving information
US7392258B2 (en) 2005-02-25 2008-06-24 International Business Machines Corporation Method and computer program product for dynamic weighting of an ontological data model
US7536635B2 (en) 2005-04-25 2009-05-19 Microsoft Corporation Enabling users to redact portions of a document
US7694008B2 (en) 2005-05-04 2010-04-06 Venturi Wireless Method and apparatus for increasing performance of HTTP over long-latency links
US7840589B1 (en) 2005-05-09 2010-11-23 Surfwax, Inc. Systems and methods for using lexically-related query elements within a dynamic object for semantic search refinement and navigation
US20060282771A1 (en) 2005-06-10 2006-12-14 Tad Vinci Verifying document compliance to a subsidiary standard
WO2007002728A2 (en) 2005-06-28 2007-01-04 Claria Corporation Method and system for controlling and adapting a media stream
US7487147B2 (en) 2005-07-13 2009-02-03 Sony Computer Entertainment Inc. Predictive user interface
CA2513018A1 (en) 2005-07-22 2007-01-22 Research In Motion Limited Method for training a proxy server for content delivery based on communication of state information from a mobile device browser
CA2617060A1 (en) 2005-07-29 2007-08-09 Cataphora, Inc. An improved method and apparatus for sociological data analysis
US8001471B2 (en) 2006-02-28 2011-08-16 Maven Networks, Inc. Systems and methods for providing a similar offline viewing experience of online web-site content
US20070208704A1 (en) 2006-03-06 2007-09-06 Stephen Ives Packaged mobile search results
US20070226633A1 (en) 2006-03-06 2007-09-27 International Business Machines Corporation Copying and pasting portlets in a portal environment
US7509299B2 (en) * 2006-03-13 2009-03-24 Microsoft Corporation Calculating web page importance based on a conditional Markov random walk
US20080052219A1 (en) 2006-03-31 2008-02-28 Combinenet, Inc. System for and method of expressive auctions of user events
US8190650B2 (en) 2006-05-02 2012-05-29 Microsoft Corporation Efficiently filtering using a web site
GB0702587D0 (en) 2006-05-05 2007-03-21 Omnifone Ltd Digital rights management
US7876335B1 (en) 2006-06-02 2011-01-25 Adobe Systems Incorporated Methods and apparatus for redacting content in a document
US7945563B2 (en) 2006-06-16 2011-05-17 Yahoo! Inc. Search early warning
US7660815B1 (en) 2006-06-30 2010-02-09 Amazon Technologies, Inc. Method and system for occurrence frequency-based scaling of navigation path weights among online content sources
US7685192B1 (en) 2006-06-30 2010-03-23 Amazon Technologies, Inc. Method and system for displaying interest space user communities
US8386509B1 (en) 2006-06-30 2013-02-26 Amazon Technologies, Inc. Method and system for associating search keywords with interest spaces
US7802305B1 (en) 2006-10-10 2010-09-21 Adobe Systems Inc. Methods and apparatus for automated redaction of content in a document
US8943332B2 (en) 2006-10-31 2015-01-27 Hewlett-Packard Development Company, L.P. Audit-log integrity using redactable signatures
US20080140941A1 (en) 2006-12-07 2008-06-12 Dasgupta Gargi B Method and System for Hoarding Content on Mobile Clients
US20080201332A1 (en) 2007-02-20 2008-08-21 Souders Steven K System and method for preloading content on the basis of user context
US7941609B2 (en) 2007-02-23 2011-05-10 Microsoft Corporation HTTP acceleration by prediction and pre-fetching
US8032472B2 (en) 2007-04-04 2011-10-04 Tuen Solutions Limited Liability Company Intelligent agent for distributed services for mobile devices
US8015502B2 (en) 2007-05-22 2011-09-06 Yahoo! Inc. Dynamic layout for a search engine results page on implicit user feedback
US7996483B2 (en) 2007-06-20 2011-08-09 Microsoft Corporation Adaptive caching in broadcast networks
US8005946B2 (en) 2007-09-10 2011-08-23 Microsoft Corporation Managing navigation history for intra-page state transitions
US9195743B2 (en) 2007-10-04 2015-11-24 Yahoo! Inc. System and method for creating and applying predictive user click models to predict a target page associated with a search query
US7925694B2 (en) 2007-10-19 2011-04-12 Citrix Systems, Inc. Systems and methods for managing cookies via HTTP content layer
US20090132949A1 (en) 2007-11-16 2009-05-21 Jason Bosarge Methods and systems for transmitting, receiving and annotating internet content
US20090158221A1 (en) 2007-12-17 2009-06-18 Nokia Corporation Device feature manipulation based on presented content
US8131731B2 (en) 2007-12-27 2012-03-06 Microsoft Corporation Relevancy sorting of user's browser history
US8560964B2 (en) 2008-02-20 2013-10-15 International Business Machines Corporation Method and system for predictive browsing
US8255396B2 (en) 2008-02-25 2012-08-28 Atigeo Llc Electronic profile development, storage, use, and systems therefor
US20090254643A1 (en) 2008-04-04 2009-10-08 Merijn Camiel Terheggen System and method for identifying galleries of media objects on a network
US20090254515A1 (en) 2008-04-04 2009-10-08 Merijn Camiel Terheggen System and method for presenting gallery renditions that are identified from a network
US8549497B2 (en) 2008-05-05 2013-10-01 University Of New Brunswick High-level hypermedia synthesis for adaptive web
US20090299964A1 (en) 2008-05-30 2009-12-03 Microsoft Corporation Presenting search queries related to navigational search queries
US8407214B2 (en) 2008-06-25 2013-03-26 Microsoft Corp. Constructing a classifier for classifying queries
US8032591B2 (en) 2008-06-25 2011-10-04 Ebay, Inc. Systems and methods for mapping event changes in network navigation
US8799200B2 (en) 2008-07-25 2014-08-05 Liveperson, Inc. Method and system for creating a predictive model for targeting webpage to a surfer
US8112308B1 (en) 2008-08-06 2012-02-07 Google Inc. Targeting using generated bundles of content sources
US8725466B2 (en) * 2008-10-14 2014-05-13 Cct International, Inc. System and method for hybrid solid and surface modeling for computer-aided design environments
US8819585B2 (en) 2008-10-27 2014-08-26 Microsoft Corporation Child window surfacing and management
GB2477456A (en) 2008-11-14 2011-08-03 Virtual Nerd Llc Whiteboard presentation of interactive and expandable modular content
US7949647B2 (en) 2008-11-26 2011-05-24 Yahoo! Inc. Navigation assistance for search engines
US8356247B2 (en) 2008-12-16 2013-01-15 Rich Media Worldwide, Llc Content rendering control system and method
US8260938B2 (en) 2009-01-23 2012-09-04 Google Inc. Predicting user requests to reduce network connection latency
KR101035686B1 (ko) 2009-03-12 2011-05-19 주식회사 로그 웹 페이지별 접속 통계 정보 제공 장치 및 접속 통계 정보 제공 방법
US8140646B2 (en) 2009-06-04 2012-03-20 Microsoft Corporation Network application performance enhancement using speculative execution
US20100332550A1 (en) * 2009-06-26 2010-12-30 Microsoft Corporation Platform For Configurable Logging Instrumentation
US20110029670A1 (en) 2009-07-31 2011-02-03 Microsoft Corporation Adapting pushed content delivery based on predictiveness
JP5316338B2 (ja) 2009-09-17 2013-10-16 ソニー株式会社 情報処理装置、データ取得方法及びプログラム
US20110071898A1 (en) * 2009-09-23 2011-03-24 Yahoo! Inc. System and method for updating search advertisements during search results navigation
US20110119361A1 (en) 2009-11-17 2011-05-19 Oto Technologies, Llc System and method for managing redacted electronic documents using callback triggers
JP2011141867A (ja) 2009-12-10 2011-07-21 Sharp Corp データ表示装置およびサーバ装置
US9104238B2 (en) 2010-02-12 2015-08-11 Broadcom Corporation Systems and methods for providing enhanced motion detection
JP5084858B2 (ja) * 2010-03-16 2012-11-28 ヤフー株式会社 サマリ作成装置、サマリ作成方法及びプログラム
US8375208B2 (en) 2010-05-20 2013-02-12 Verizon Patent And Licensing Inc. Method and apparatus for providing content aggregation in support of virtual channels
US9213685B2 (en) 2010-07-13 2015-12-15 Motionpoint Corporation Dynamic language translation of web site content
CA3060802A1 (en) 2010-08-30 2012-02-29 Mobile Newmedia Ltd. Health kiosk
US20120084644A1 (en) 2010-09-30 2012-04-05 Julien Robert Content preview
US20120137201A1 (en) 2010-11-30 2012-05-31 Alcatel-Lucent Usa Inc. Enabling predictive web browsing
US8799759B2 (en) 2010-12-13 2014-08-05 International Business Machines Corporation Pre-rendering web content
US8849775B2 (en) 2010-12-15 2014-09-30 Yahoo! Inc. Caching web documents in two or more caches
US8504907B2 (en) 2011-03-07 2013-08-06 Ricoh Co., Ltd. Generating page and document logs for electronic documents
US8732571B2 (en) 2011-03-31 2014-05-20 Google Inc. Methods and systems for generating and displaying a preview image of a content area
US8600968B2 (en) 2011-04-19 2013-12-03 Microsoft Corporation Predictively suggesting websites
US8413047B2 (en) * 2011-05-12 2013-04-02 Qualcomm Incorporated Concurrent parsing and processing of HTML and JAVASCRIPT®
US8788711B2 (en) 2011-06-14 2014-07-22 Google Inc. Redacting content and inserting hypertext transfer protocol (HTTP) error codes in place thereof
US8745212B2 (en) 2011-07-01 2014-06-03 Google Inc. Access to network content
US8959431B2 (en) 2012-01-16 2015-02-17 Microsoft Corporation Low resolution placeholder content for document navigation
US8892638B2 (en) 2012-05-10 2014-11-18 Microsoft Corporation Predicting and retrieving data for preloading on client device

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047502B2 (en) * 2001-09-24 2006-05-16 Ask Jeeves, Inc. Methods and apparatus for mouse-over preview of contextually relevant information
US7277924B1 (en) * 2002-05-07 2007-10-02 Oracle International Corporation Method and mechanism for a portal website architecture
US20110029518A1 (en) * 2003-06-10 2011-02-03 Google Inc. Document search engine including highlighting of confident results
JP2006235760A (ja) * 2005-02-22 2006-09-07 Nippon Telegr & Teleph Corp <Ntt> 情報閲覧システム、方法およびプログラム
US20070220010A1 (en) * 2006-03-15 2007-09-20 Kent Thomas Ertugrul Targeted content delivery for networks
US7747749B1 (en) 2006-05-05 2010-06-29 Google Inc. Systems and methods of efficiently preloading documents to client devices
KR20080111822A (ko) * 2007-06-20 2008-12-24 강정욱 사용자 검색어를 연동하여 가이드 정보, 랭킹 정보를제공하는 검색지원 정보 시스템.
US20100005061A1 (en) * 2008-07-01 2010-01-07 Stephen Basco Information processing with integrated semantic contexts
JP2010186295A (ja) * 2009-02-12 2010-08-26 Nec Corp 情報検索システム及び情報検索方法並びにプログラム
KR20100112512A (ko) * 2009-04-09 2010-10-19 (주)아이오다인 검색 장치 및 검색 방법
WO2011031102A2 (en) * 2009-09-13 2011-03-17 Samsung Electronics Co., Ltd. Search method, apparatus, and system for providing preview information
US20110173569A1 (en) * 2010-01-13 2011-07-14 Rockmelt, Inc. Preview Functionality for Increased Browsing Speed

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
EUGENE A. et al., Improving web search ranking by incorporating user behavior information, ACM-SIGIR conference, pp.19-26, Vol.29 (2006.08.06) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102349495B1 (ko) * 2020-11-18 2022-01-11 쿠팡 주식회사 가상 서버들로부터 대용량 로그 파일들을 프로세싱하는 컴퓨터 시스템 및 방법.

Also Published As

Publication number Publication date
EP2805265A1 (en) 2014-11-26
US9672285B2 (en) 2017-06-06
EP2805265B1 (en) 2020-07-08
CN104067274A (zh) 2014-09-24
AU2017206281A1 (en) 2017-08-10
JP6517263B2 (ja) 2019-05-22
US8793235B2 (en) 2014-07-29
CN107463641A (zh) 2017-12-12
JP2017142832A (ja) 2017-08-17
CN107463641B (zh) 2020-10-27
JP2019153323A (ja) 2019-09-12
KR20170023216A (ko) 2017-03-02
US10572548B2 (en) 2020-02-25
KR101867809B1 (ko) 2018-06-18
KR101711456B1 (ko) 2017-03-02
AU2013209728A1 (en) 2014-07-24
KR101891488B1 (ko) 2018-08-27
JP6646781B2 (ja) 2020-02-14
JP2016224987A (ja) 2016-12-28
WO2013109744A1 (en) 2013-07-25
AU2013209728B2 (en) 2017-04-27
JP6122199B2 (ja) 2017-04-26
US20130191360A1 (en) 2013-07-25
US20160246888A1 (en) 2016-08-25
AU2018201459A1 (en) 2018-03-22
KR20140114045A (ko) 2014-09-25
JP6013514B2 (ja) 2016-10-25
AU2018201459B2 (en) 2019-04-04
EP2805265A4 (en) 2015-09-30
JP2015511347A (ja) 2015-04-16
AU2017206281B2 (en) 2017-11-30
US20160179951A1 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
KR101891488B1 (ko) 검색 결과에 대한 액세스를 향상시키기 위한 시스템 및 방법
US11032388B2 (en) Methods for prerendering and methods for managing and configuring prerendering operations
US11019179B2 (en) Access to network content
US9530099B1 (en) Access to network content
EP2904509B1 (en) Improving access to network content
US10445753B1 (en) Determining popular and trending content characteristics
US11520932B2 (en) Dynamic trigger of web beacons

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant