KR20190044134A - 웹사이트 액세스 방법, 장치, 및 웹사이트 시스템 - Google Patents

웹사이트 액세스 방법, 장치, 및 웹사이트 시스템 Download PDF

Info

Publication number
KR20190044134A
KR20190044134A KR1020197011266A KR20197011266A KR20190044134A KR 20190044134 A KR20190044134 A KR 20190044134A KR 1020197011266 A KR1020197011266 A KR 1020197011266A KR 20197011266 A KR20197011266 A KR 20197011266A KR 20190044134 A KR20190044134 A KR 20190044134A
Authority
KR
South Korea
Prior art keywords
version
file
website
current
url
Prior art date
Application number
KR1020197011266A
Other languages
English (en)
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 KR20190044134A publication Critical patent/KR20190044134A/ko

Links

Images

Classifications

    • 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]
    • 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]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 출원은 IT 기술분야에 관한 것으로, 특히, 웹사이트 액세스 방법, 장치, 및 웹사이트 시스템에 관한 것이다. 웹사이트 시스템에서, 클라이언트가 웹사이트의 페이지를 액세스할 때, 웹 서버는 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 초기 URL 및 웹사이트의 현재 버전의 버전 파라미터를 취득하고, 상기 콘텐츠 파일의 현재 URL을 생성하고, 상기 콘텐츠 파일의 현재 URL의 검색 부분에 상기 버전 파라미터를 추가하여, 상기 클라이언트가 상기 현재 URL에 따라 상기 웹 서버로부터 상기 콘텐츠 파일을 취득할 수 있도록 한다. 상기 웹사이트의 버전 업그레이드 동안에, 개발자는 콘텐츠 파일의 경로를 변경할 필요가 없고, 콘텐츠 파일의 URL을 수동으로 변경할 필요가 없으며, 콘텐츠 파일의 명칭을 갱신할 필요도 없다. 이는 웹사이트 업그레이드 효율을 향상시킨다.

Description

웹사이트 액세스 방법, 장치, 및 웹사이트 시스템 {WEBSITE ACCESS METHOD, APPARATUS, AND WEBSITE SYSTEM}
본 발명은 IT 기술 분야에 관한 것으로, 특히 웹사이트 액세스 방법, 장치, 및 웹사이트 시스템에 관한 것이다.
월드 와이드 웹(World Wide Web, WWW)은 1989년에 시작되었고, 브라우저-서버 구조를 사용한다. 월드 와이드 웹을 사용함으로써, 사용자는 웹 브라우저를 사용하여 웹 서버상에 제공되는 풍부한 정보 자원에 액세스할 수 있다. 일반적으로, 웹 서버상의 파일은 웹 서버상의 파일 시스템에 저장된다. 웹 서버는, 통일 자원 위치자(Uniform Resource Locator, URL)가 파일명에 대응하는 조직 구조(organization structure)를 사용하여, 웹 브라우저로부터 수신되는 URL을 로컬 파일 시스템의 파일에 매핑한다. 예를 들어, 서버 소프트웨어는 웹사이트 "example.funnycorp.com"의 웹 서버상에 설치되고, 웹 서버 소프트웨어의 루트 디렉토리는 "/home/public/web/"로 설정된다. 사용자가 웹 브라우저상에서 URL http://example.funnycorp.com/lips/raspberry.html을 입력하면, 웹 브라우저는 웹 서버에 하이퍼텍스트 전송 프로토콜(HyperText Transfer Protocol, HTTP) 요청을 전송하고, "example.funnycorp.com"의 웹 서버는 HTTP 요청을 수신하고, "/home/public/web/lips/raspberry.html" 파일을 판독한다. 파일은 HTTP 응답에 실려 웹 브라우저로 회신된다. HTTP 응답은 일반적으로 하이퍼텍스트 마크업 언어(HyperText Markup Language, HTML) 파일을 포함하며, 텍스트 파일, 이미지, 또는 다른 유형의 파일을 포함할 수도 있다. 정적 자원 파일(static resource file)을 다운로드한 후, 웹 브라우저는 다운로드된 정적 자원 파일을 로컬 임시 폴더(local temporary folder) 내 캐시에 저장한다(cache). 웹 브라우저가 이 웹사이트에 다시 액세스해야 하는 경우, 웹 브라우저는 웹사이트에 대응하는 웹 서버로부터, 캐시에 이미 저장되어 있는 정적 자원 파일을 다시 다운로드하는 대신, 캐시로부터 정적 자원 파일을 직접 판독함으로써, 웹사이트 액세스 속도를 높인다. 그러나 웹 서버상의 파일은 웹사이트의 갱신과 함께 갱신될 수 있으므로, 웹사이트를 액세스하는 동안에 브라우저가 최신 파일을 취득할 수 있도록 보장하기 위한 메커니즘이 필요하다.
파일 콘텐츠 해시(file content hash)에 기초한 파일 갱신 메커니즘이 웹 페이지의 동적 갱신을 보장하기 위해 종래기술에서 제공된다. 구체적으로는, 웹 서버상에 저장된 파일에 대응하는 URL은 절대 경로이다. 예를 들어, logo.gif 파일의 절대 경로의 포맷은 "/directory/subdirectory/.../logo.gif"이다. 웹사이트를 업그레이드하는 경우, logo.gif 파일이 갱신되면, 파일명은 logo_hashcode.gif로 변경되고, 여기서 hashcode는 logo.gif 파일의 콘텐츠에 기초하여 계산된 해시 값이다. 파일 콘텐츠가 변경될 때마다, 해시 코드는 다시 계산된다. 따라서 절대 경로는 "/directory/subdirectory/.../logo_hashcode.gif"로 변경되고, 사용자의 브라우저는 이 절대 경로에 따라 최신 파일인 logo.gif를 취득할 수 있다. 이런 식으로, 웹 페이지의 동적 갱신이 구현된다.
그러나 웹 서버상의 파일들은 상호 참조된다. 다른 파일이 logo.gif를 참조하였을 경우, logo.gif의 파일명의 변경은 logo.gif를 참조한 파일의 파일 콘텐츠의 변경을 야기하고, 결과적으로 logo.gif를 참조한 파일의 해시 코드는, 변경된 파일 콘텐츠에 따라 다시 계산되어야 한다. 예를 들어, a.js 파일은 logo.gif를 참조한다. logo.gif가 변경되는 경우, 그 파일명은 logo_hashcode.gif로 변경된다. 이 경우에 a.js 파일의 파일 콘텐츠가 그에 따라 변경되고, 파일명이 a_hashcode.js로 변경된다. 따라서, 종래기술에서, 웹 서버상의 하나의 파일이 갱신되는 경우, 그 파일에 의존하는 모든 파일이 그에 따라 갱신되어, 대량의 파일 갱신을 초래하고 웹사이트 업그레이드에서의 위험을 증가시킨다.
본 명세서에서는 웹사이트 업그레이드 위험을 낮추고 웹사이트 업그레이드 효율을 향상시키기 위한, 웹사이트 액세스 방법, 장치, 및 웹사이트 시스템을 설명한다.
일 측면에 따르면, 본 출원의 실시예는 웹사이트 액세스 방법을 제공하며, 상기 웹사이트 액세스 방법은,
클라이언트로부터 액세스 요청을 수신하는 단계 - 상기 액세스 요청은 웹사이트 상의 액세스될 페이지를 지시함 -; 상기 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 초기 URL(Uniform Resource Locator)을 취득하는 단계 - 상기 초기 URL은 상기 콘텐츠 파일의 원래 경로 정보(original path information)를 포함함 -; 상기 웹사이트의 현재 버전의 버전 파라미터를 취득하는 단계 - 상기 웹사이트의 버전 각각은 상기 웹사이트 한 번의 업그레이드에 대응하고, 상기 웹사이트의 버전 각각은 유일한 버전 파라미터에 대응함 -; 상기 콘텐츠 파일의 초기 URL 및 상기 웹사이트의 현재 버전의 버전 파라미터에 따라 상기 콘텐츠 파일의 현재 URL을 생성하는 단계 - 상기 현재 URL은 경로 정보 부분과 검색 부분을 포함하고, 상기 경로 정보 부분은 상기 콘텐츠 파일의 원래 경로 정보를 포함하고, 상기 검색 부분은 상기 웹사이트의 현재 버전의 버전 파라미터를 포함함 -; 및 상기 클라이언트에 액세스 응답을 회신하는 단계 - 상기 액세스 응답은 상기 콘텐츠 파일의 현재 URL을 싣고 있음 -를 포함한다.
전술한 방식에 따르면, 클라이언트가 웹사이트의 페이지를 액세스하는 경우, 웹 서버는 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 초기 URL 및 웹사이트의 현재 버전의 버전 파라미터를 취득하고, 콘텐츠 파일의 현재 URL을 생성하고, 버전 파라미터를 콘텐츠 파일의 현재 URL의 검색 부분에 추가하여, 클라이언트가 현재 URL에 따라 웹 서버로부터 콘텐츠 파일을 취득할 수 있도록 한다. 따라서, 본 발명의 본 실시예에 따르면, 웹 서버가 클라이언트로부터 액세스 요청을 수신하는 경우, 버전 파라미터가 콘텐츠 파일의, 클라이언트에 회신되는, 현재 URL의 검색 부분에 추가된다. 따라서, 웹사이트의 버전 업그레이드 동안에, 콘텐츠 파일이 갱신되며, 개발자는 콘텐츠 파일의 경로를 갱신할 필요가 없고, 콘텐츠 파일의 URL을 수동으로 변경할 필요가 없으며, 콘텐츠 파일의 이름도 갱신할 필요가 없다. 구체적으로, 한편으로는, 콘텐츠 파일의 파일명은 웹사이트의 업그레이드 프로세스에서 변경될 필요가 없고, 따라서 그 콘텐츠 파일을 참조하는 다른 파일은 영향을 받지 않으며, 그 콘텐츠 파일을 참조하는 다른 파일의 파일명도 변경될 필요가 없어, 웹사이트의 대량의 파일의 완전 업그레이드를 회피하고 업그레이드 위험을 낮춘다. 다른 한편으로는, 전술한 웹사이트의 업그레이드 프로세스에서, 콘텐츠 파일에 대한 경로는 변경될 필요가 없고, 따라서 콘텐츠 파일에 대한 경로는 개발자에 의해 재기록될 필요가 없어, 개발 비용을 감소시킨다.
가능한 설계에서, 웹사이트 시스템은 관리 서버를 더 포함한다. 상기 웹 서버에 의해 전송되는 버전 질의 요청(version query request)을 수신한 경우, 상기 관리 서버는 상기 버전 질의 요청에 실려 있는 상기 웹사이트의 식별자에 따라 상기 버전 파라미터를 질의하고, 상기 버전 파라미터를 상기 웹사이트에 회신한다. 상기 관리 서버는 상기 웹사이트의 식별자를 기록하며, 상기 식별자는 상기 웹사이트의 키 ID일 수 있다. 상기 관리 서버는 추가로 상기 웹사이트의 현재의 버전 번호 및 상기 버전 번호에 따라 생성되는 상기 버전 파라미터를 기록한다.
가능한 설계에서, 상기 관리 서버의 기능은 상기 웹 서버상의 관리 모듈의 형태로 구현될 수 있다. 이 경우, 상기 웹 서버는 상기 웹사이트의 현재 버전의 버전 번호를 취득하고, 상기 버전 번호에 따라 상기 버전 파라미터를 생성한다.
가능한 설계에서, 상기 웹 서버는 상기 웹사이트의 현재 버전의 버전 파라미터를 상기 버전 파라미터로 사용한다.
가능한 설계에서, 상기 관리 서버는 아래의 방식 중 어느 하나의 방식으로 웹사이트의 현재 버전의 버전 파라미터를 구성할 수 있다: 방식 1: 상기 웹사이트의 버전이 업그레이드되는 경우, 상기 웹 서버는 업그레이드 후의 상기 웹사이트의 버전 번호를 버전 설명 파일에 기록할 수 있으며, 상기 관리 서버는 상기 버전 설명 파일에서 상기 웹사이트의 최신 버전 번호를 추출함; 또는 방식 2: 상기 웹사이트가 운영 및 유지보수 인력(operation and maintenance personnel)에 의해 업그레이드되고, 업그레이드의 완료 후, 상기 웹사이트의 최신 버전 번호를 상기 관리 서버의 인터페이스를 사용하여 상기 관리 서버에 기록함; 또는 방식 3: 상기 웹사이트 시스템은 업그레이드 스크립트 파일(upgrade script file)을 사용하여 업그레이드될 수 있고, 상기 웹사이트는 업그레이드 관리 모듈을 더 포함하며, 상기 업그레이드 관리 모듈이 상기 업그레이드 스크립트 파일을 실행하여, 웹사이트의 업그레이드가 완료되고 상기 웹사이트의 콘텐츠 파일이 갱신된 후, 관리 서버 인터페이스가 호출되고, 상기 웹사이트의 버전 번호는 상기 관리 서버상에서 구성됨; 또는 방식 4: 상기 웹사이트 시스템의 구성 관리 도구가 상기 웹 서버를 모니터할 수 있고, 상기 웹사이트의 버전이 갱신된 것을 검출한 경우, 버전 저장소(version repository)에서 상기 웹사이틔 갱신된 버전 번호를 판독하고, 상기 관리 서버의 인터페이스를 호출하여, 상기 관리 서버상에 상기 웹사이트의 갱신된 버전 번호를 구성함. 본 출원은 관리 서버가 시의 적절한 방식으로 웹사이트의 최신 버전 번호를 취득할 수 있도록 하기 위해 전술한 네 가지 방식을 제공함으로써, 최신 버전 번호에 대응하는 버전 파라미터를 생성한다.
가능한 설계에서, 상기 관리 서버의 기능은 상기 웹 서버상의 관리 모듈의 형태로 구현된다. 이 경우, 상기 웹 서버는 전술한 방식들과 유사한 방법을 사용하여, 상기 웹사이트의 현재 버전의 버전 파라미터를 생성하기 위해 상기 웹사이트의 버전 번호를 취득할 수 있다: 방식 1: 상기 웹사이트의 버전 설명 파일을 취득하고, 상기 버전 설명 파일에서 상기 웹사이트의 현재 버전의 버전 번호를 판독함; 또는 방식 2: 운영 및 유지보수 인력에 의해 관리 인터페이스를 사용하여 기록되는 상기 웹사이트의 현재 버전의 버전 번호를 수신함; 또는 방식 3: 업그레이드 스크립트 파일을 실행하고, 웹사이트 업그레이드의 완료 후, 상기 웹사이트의 현재 버전의 버전 번호를 구성함; 또는 방식 4: 상기 웹사이트의 버전 업그레이드 프로세스를 모니터하고, 웹사이트 버전 업그레이드의 완료가 결정된 후, 버전 저장소에서 상기 웹사이트의 현재 버전의 버전 번호를 판독함.
가능한 설계에서, 상기 콘텐츠 파일의 초기 URL은 색인 파일에 실려 있고, 상기 웹 서버는 상기 색인 파일에 포함되어 있는 상기 콘텐츠 파일의 초기 URL을 상기 생성된 현재 URL로 대체하고, 갱신된 색인 파일을 상기 액세스 응답에 추가한다.
가능한 설계에서, 상기 클라이언트 측은 상기 클라이언트가 이전에 상기 웹사이트에 액세스하였을 때 저장된 상기 콘텐츠 파일의 파일명 및 버전 파라미터를 캐시에 저장한다. 캐시에 저장하기 위한 위치는 상기 클라이언트 또는 상기 클라이언트에 연결 가능한 다른 저장 기기일 수 있다. 상기 클라이언트는 상기 액세스될 페이지에 포함되어 있는 콘텐츠 파일이 이미 캐시에 저장되었는지를 판정하기 위해 상기 콘텐츠 파일의, 캐시에 저장된 파일명 및 버전 파라미터를 질의한다. 그렇다면, 상기 캐시에 저장된 콘텐츠 파일이 직접 판독되고; 그렇지 않으면, 상기 웹 서버로부터 상기 콘텐츠 파일을 취득하기 위해 상기 웹 서버에 파일 요청 메시지가 발송된다(originated). 캐시 설정에 의해, 브라우저 클라이언트가 웹사이트에 다시 액세스하는 경우, 캐시에 이미 저장되었으면, 액세스될 페이지에 포함되어 있는 콘텐츠 파일은 웹 서버로부터 다시 취득될 필요가 없다. 이로써 웹사이트 액세스 효율을 향상시킨다.
가능한 설계에서, 상기 웹 서버는 상기 브라우저 클라이언트 측의 상기 콘텐츠 파일의 캐시 속성(cache attribute)을 제어할 수 있으며, 구체적으로, 웹 서버는 상기 브라우저 클라이언트 측이 상기 콘텐츠 파일 및 캐시 지속시간을 캐시에 저장해야 하는지를 지시하기 위해 사용되는 캐시 설정 파라미터를 상기 액세스 응답에 추가한다.
가능한 설계에서, 상기 웹 서버는 상기 액세스 응답에 실려 있는 상기 색인 파일의 파일 유형을 결정하고, 상기 색인 파일의 파일 유형에 따라, 상기 색인 파일이 상기 콘텐츠 파일의 초기 URL을 포함하는지를 판정한다. 구체적으로는, 상기 파일이 css 파일 또는 html 파일인 경우, 상기 색인 파일은 상기 콘텐츠 파일의 초기 URL을 포함할 수 있다.
가능한 설계에서, 상기 브라우저 클라이언트는 AJAX 기술을 지원할 수 있고, 비동기 데이터 전송(asynchronous data transfer) 방식으로 상기 웹 서버로부터 상기 콘텐츠 파일을 취득할 수 있다. 이 경우에서, 상기 액세스 응답의 쿠키는 상기 웹사이트의 현재 버전의 버전 파라미터를 싣고 있다. 상기 클라이언트는 우선적으로 상기 쿠키에서 상기 버전 파라미터를 판독하고, 상기 버전 파라미터를 상기 콘텐츠 파일의, 상기 클라이언트상에서 생성된, 요청 주소에 추가하고, 상기 웹 서버로부터 콘텐츠 파일을 취득한다.
다른 측면에 따르면, 본 발명의 실시예는 다른 웹사이트 액세스 방법을 제공한다. 상기 웹사이트 액세스 방법은 프록시 서버에 의해, 웹 서버에 의해 회신되는 액세스 응답을 인터셉트하여 상기 액세스 응답에 실려 있는 콘텐츠 파일의 URL을 갱신함으로써 실행된다. 구체적으로 상기 웹사이트 액세스 방법은, 웹 서버로부터의 제1 액세스 응답을 인터셉트하는 단계 - 상기 제1 액세스 응답은, 상기 웹 서버가 클라이언트로부터 액세스 요청을 수신한 후에 전송되고, 상기 액세스 요청은 웹사이트상의 액세스될 페이지를 지시하며, 상기 제1 액세스 응답은 상기 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 초기 URL을 싣고 있고, 상기 초기 URL은 상기 콘텐츠 파일의 원래 경로 정보를 포함함 -; 상기 웹사이트의 현재 버전의 버전 파라미터를 취득하는 단계 - 상기 웹사이트의 버전 각각은 상기 웹사이트의 한 번의 업그레이드에 대응하고, 상기 웹사이트의 버전 각각은 유일한 버전 파라미터에 대응함 -; 상기 콘텐츠 파일의 초기 URL 및 상기 웹사이트의 현재 버전의 버전 파라미터에 따라 상기 콘텐츠 파일의 현재 URL을 생성하는 단계 - 상기 현재 URL은 경로 정보 부분과 검색 부분을 포함하고, 상기 경로 정보 부분은 상기 콘텐츠 파일의 원래 경로 정보를 포함하고, 상기 검색 부분은 상기 웹사이트의 현재 버전의 버전 파라미터를 포함함 -; 및 상기 클라이언트에 제2 액세스 응답을 회신하는 단계 - 상기 제2 액세스 응답은 상기 콘텐츠 파일의 현재 URL을 싣고 있음 -를 포함한다.
본 발명의 본 실시예에서 제공되는 전술한 웹사이트 액세스 방법에 따르면, 프록시 서버는 웹 서버에 의해 회신되는 액세스 응답을 인터셉트하고, 액세스 응답에 포함되어 있는 콘텐츠 파일의 URL의 검색 부분에 웹사이트의 현재 버전의 버전 파라미터를 추가하여, 클라이언트가 현재의 URL에 따라 웹 서버로부터 콘텐츠 파일을 취득할 수 있도록 한다. 웹사이트의 버전 업그레이드 동안에, 개발자는 콘텐츠 파일의 경로를 갱신할 필요가 없고, 콘텐츠 파일의 URL을 수동으로 변경할 필요가 없으며, 콘텐츠 파일의 이름을 갱신할 필요도 없다. 이는 웹사이트 업그레이드 효율을 향상시킨다. 한편으로는, 콘텐츠 파일의 파일명이 웹사이트의 업그레이드 프로세스에서 변경될 필요가 없고, 따라서 콘텐츠 파일을 참조하는 다른 파일은 영향을 받지 않고, 콘텐츠 파일을 참조하는 다른 파일의 파일명도 변경될 필요가 없어, 웹사이트의 대량의 파일의 완전 업그레이드를 회피하고 업그레이드 위험을 낮춘다. 다른 한편으로는, 전술한 웹사이트의 업그레이드 프로세스에서, 콘텐츠 파일에 대한 경로는 변경될 필요가 없고, 따라서 콘텐츠 파일에 대한 경로는 개발자에 의해 재기록될 필요가 없어, 개발 비용을 감소시킨다.
가능한 설계에서, 웹사이트 시스템은 관리 서버를 더 포함한다. 상기 프록시 서버에 의해 전송되는 버전 질의 요청을 수신한 경우, 상기 관리 서버는 상기 버전 질의 요청에 실려 있는 상기 웹사이트의 식별자에 따라 상기 버전 파라미터를 질의하고, 상기 버전 파라미터를 상기 웹사이트에 회신한다. 상기 관리 서버는 상기 웹사이트의 식별자를 기록하며, 상기 식별자는 상기 웹사이트의 키 ID일 수 있다. 상기 관리 서버는 추가로 상기 웹사이트의 현재의 버전 번호, 및 상기 버전 번호에 따라 생성되는 상기 버전 파라미터를 기록한다.
가능한 설계에서, 상기 관리 서버의 기능은 상기 프록시 서버상의 관리 모듈의 형태로 구현될 수 있다. 이 경우에, 상기 프록시 서버는 상기 웹사이트의 현재 버전의 버전 번호를 취득하고, 상기 버전 번호에 따라 상기 버전 파라미터를 생성한다.
가능한 설계에서, 상기 프록시 서버는 상기 웹사이트의 현재 버전의 버전 파라미터를 상기 버전 파라미터로 사용한다.
가능한 설계에서, 상기 프록시 서버는 아래의 방식 중 어느 하나의 방식으로 웹사이트의 현재 버전의 버전 파라미터를 취득할 수 있다: 방식 1: 상기 웹사이트의 버전 설명 파일을 취득하고, 상기 버전 설명 파일에서 상기 웹사이트의 현재 버전의 버전 번호를 판독함; 방식 2: 관리 인터페이스를 사용하여 운영 및 유지보수 인력에 의해 기록되는 상기 웹사이트의 현재 버전의 버전 번호를 수신함: 방식 3: 업그레이드 스크립트 파일을 실행하고, 웹사이트 업그레이드의 완료 후, 상기 웹사이트의 현재 버전의 버전 번호를 구성함; 및 방식 4: 상기 웹사이트의 버전 업그레이드 프로세스를 모니터하고, 웹사이트 버전 업그레이드의 완료가 결정된 후, 버전 저장소에서 상기 웹사이트의 현재 버전의 버전 번호를 판독함.
가능한 설계에서, 상기 콘텐츠 파일의 초기 URL은 상기 웹 서버에 의해 회신되는 상기 제1 액세스 응답의 색인 파일에 실려 있고, 상기 프록시 서버는 상기 색인 파일에 포함되어 있는 상기 콘텐츠 파일의 초기 URL을 상기 생성된 현재 URL로 대체하고, 갱신된 색인 파일(updated index file)을 상기 클라이언트에 의해 전송되는 상기 제2 액세스 응답에 추가한다.
가능한 설계에서, 상기 제2 액세스 응답은 상기 클라이언트가 상기 콘텐츠 파일 및 캐시 지속기간을 캐시에 저장해야 하는지를 지시하기 위해 사용되는 캐시 설정 파라미터(cache setting parameter )를 포함한다.
가능한 설계에서, 상기 프록시 서버는 추가로, 액세스될 페이지에 대응하는, 상기 제1 액세스 응답 내의, 상기 색인 파일의 파일 유형을 결정할 수 있고, 상기 색인 파일의 파일 유형에 따라, 상기 색인 파일이 상기 콘텐츠 파일의 초기 URL을 포함하는지를 결정할 수 있다. 상기 색인 파일이 css 파일 또는 html 파일인 경우, 상기 색인 파일은 상기 콘텐츠 파일의 초기 URL를 포함한다.
가능한 설계에서, 브라우저 클라이언트는 AJAX 기술을 지원할 수 있으며, 비동기 데이터 전송 방식으로 상기 웹 서버로부터 상기 콘텐츠 파일을 취득할 수 있다. 이 경우에, 상기 제2 액세스 응답의 쿠키는 상기 웹사이트의 현재 버전의 버전 파라미터를 싣고 있다.
가능한 설계에서, 상기 프록시 서버의 기능은 기존의 Nginx 또는 HAProxy에 통합될 수 있다. 또한, 상기 프록시 서버는 하나의 물리 서버에 상기 관리 서버 또는 상기 웹 서버와 함께 배치될 수 있다. 상기 프록시 서버가 다른 서버와 함께 배치되는 경우, 상기 프록시 서버는 기능 모듈 중 하나일 수 있다.
또 다른 측면에 따르면, 본 발명의 실시예는 다른 웹사이트 액세스 방법을 더 제공한다. 상기 웹사이트 액세스 방법은 클라이언트에 의해 실행되며, 상기 웹사이트 액세스 방법은, 웹 서버에 액세스 요청을 전송하는 단계 - 상기 액세스 요청은 웹사이트상의 액세스될 페이지를 지시함 -; 회신된 액세스 응답(returned access response)을 수신하는 단계 - 상기 액세스 응답은 상기 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 현재 URL을 싣고 있고, 상기 현재 URL은 경로 정보 부분과 검색 부분을 포함하고, 상기 경로 정보 부분은 상기 콘텐츠 파일의 원래 경로 정보를 포함하고, 상기 검색 부분은 상기 웹사이트의 현재 버전의 버전 파라미터를 포함함 -; 및 상기 콘텐츠 파일을 취득하기 위해 상기 웹 서버에 파일 요청 메시지를 전송하는 단계 - 상기 제1 요청 메시지는 상기 콘텐츠 파일의 현재 URL을 싣고 있음 -를 포함한다.
클라이언트가 웹사이트의 페이지를 액세스하는 경우, 웹 서버에 의해 회신되는 액세스 응답에 실려 있는, 액세스될 페이지의 콘텐츠 파일의 현재 URL의 검색 부분은 웹사이트의 버전 파라미터를 포함하므로, 클라이언트는 현재 URL에 따라 웹 서버로부터 최신 콘텐츠 파일을 취득할 수 있다.
가능한 설계에서, 상기 클라이언트는 수신된 콘텐츠 파일을 캐시에 저장하며, 구체적으로는, 상기 웹사이트가 액세스되기 이전에 취득된 상기 콘텐츠 파일의 파일명 및 버전 파라미터를 저장한다. 웹사이트를 액세스하는 경우, 상기 클라이언트는, 수신된 콘텐츠 파일의 현재 URL 내의 파일명 및 버전 파라미터에 따라, 상기 콘텐츠 파일이 이미 캐시에 로컬로 저장되어 있는지를 판정한다. 게다가, 상기 클라이언트는 버전 파라미터를 구별하지 않고 상기 수신된 콘텐츠 파일의 현재 URL을 직접 저장할 수 있다. 콘텐츠 파일 질의가 필요한 경우, 취득될 URL과 상기 저장된 URL을 직접 비교하여 상기 취득될 URL에 대응하는 콘텐츠 파일이 이미 캐시에 로컬로 저장되어 있는지를 판정한다.
클라이언트는 이전 액세스에서 수신된 콘텐츠 파일을 캐시에 저장하고, 콘텐츠 파일의 파일명 및 버전 파라미터를 기록한다. 웹사이트의 페이지에 액세스하는 경우, 클라이언트는 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 URL을 수신한 후, URL에 대응하는 콘텐츠 파일이 이미 캐시에 로컬로 저장되어 있는지를 판정한다. 웹사이트가 업그레이드된 후, 웹사이트의 현재 버전의 버전 파라미터가 변경된다. 이 경우, 클라이언트에 의해 수신되는 콘텐츠 파일의 URL 내의 버전 파라미터는 캐시에 로컬로 저장된 콘텐츠 파일의 버전 파라미터와 다르며, 클라이언트는 웹사이트가 업그레이드된 후 웹사이트에서 콘텐츠 파일을 다시 다운로드해야 한다. 전술한 절차에 따르면, 웹사이트가 업그레이드된 후에 클라이언트 측에서 갱신하는 콘텐츠 파일 캐시의 문제가 해결된다.
가능한 설계에서, 상기 액세스 응답의 쿠키는 상기 버전 파라미터를 싣고 있고, 상기 현재 URL은 제1 JS 파일의 URL을 포함한다. 이에 상응하게, 상기 웹사이트 액세스 방법은, 상기 클라이언트가, 상기 쿠키로부터 상기 버전 파라미터를 취득하고, 상기 제1 JS 파일을 실행하고, XmlHttpRequest 객체(object)를 생성하는(creating) 단계를 더 포함하며, 상기 XmlHttpRequest 객체에서의 목적지 URL은 상기 버전 파라미터 및 제2 JS 파일의 원래 주소 정보를 포함하고, 상기 XmlHttpRequest 객체는 상기 웹 서버로부터 상기 제2 JS 파일을 취득하는 데 사용되며, 상기 제2 JS 파일은 상기 제1 JS 파일에 의해 참조된다. 전술한 방식에 따르면, AJAX 기술이 사용되는 경우, 웹사이트 시스템 측에 의해 회신되는 색인 파일에 포함되어 있는 제1 JS 파일이 제2 JS 파일을 참조하면, 클라이언트는 XmlHttpRequest 객체를 구성하고 웹 서버로부터 제2 JS 파일을 다시 취득해야 한다.
다른 측면에 따르면, 본 발명의 실시예는 웹 서버를 제공하며, 상기 웹 서버는 구체적으로 전술한 방법에서의 웹 서버의 기능을 구현한다. 상기 기능은 하드웨어를 사용하여 구현될 수 있거나, 또는 대응하는 소프트웨어를 실행하는 하드웨어를 사용하여 구현될 수 있다. 상기 하드웨어 또는 소프트웨어는 전술한 기능에 대응하는 하나 이상의 모듈을 포함한다.
다른 측면에 따르면, 본 발명의 실시예는 프록시 서버를 제공하며, 상기 프록시 서버는 구체적으로 전술한 방법에서의 프록시 서버의 기능을 구현한다. 상기 기능은 하드웨어를 사용하여 구현될 수 있거나, 또는 대응하는 소프트웨어를 실행하는 하드웨어를 사용하여 구현될 수 있다. 상기 하드웨어 또는 소프트웨어는 전술한 기능에 대응하는 하나 이상의 모듈을 포함한다.
또 다른 측면에 따르면, 본 발명의 실시예는 클라이언트를 제공하며, 상기 클라이언트는 구체적으로 전술한 방법 실시예에서의 클라이언트의 기능을 구현한다. 상기 기능은 하드웨어를 사용하여 구현될 수 있거나, 또는 대응하는 소프트웨어를 실행하는 하드웨어를 사용하여 구현될 수 있다. 상기 하드웨어 또는 소프트웨어는 전술한 기능에 대응하는 하나 이상의 모듈을 포함한다.
가능한 설계에서, 전술한 웹 서버, 상기 프록시 서버 및 상기 클라이언트는, 구체적으로 프로세서 및 메모리를 포함하는 하드웨어 장치를 사용하여 구현될 수 있으며, 상기 프로세서는 전술한 방법을 실행하기 위해 상기 웹 서버, 상기 프록시 서버, 및 상기 클라이언트의 대응하는 기능을 지원하도록 구성된다. 상기 웹 서버, 상기 프록시 서버, 및 상기 클라이언트는 메모리를 더 포함할 수 있으며, 상기 메모리는 상기 프로세서에 연결되고, 상기 프로세서가 전술한 기능을 실행하는 데 필요한 프로그램 명령어 및 데이터를 저장하도록 구성된다.
또 다른 측면에 따르면, 본 발명의 실시예는 전술한 웹 서버에 의해 사용되는 컴퓨터 소프트웨어 명령어를 저장하도록 구성된 컴퓨터 저장 매체를 제공하며, 상기 컴퓨터 저장 매체는 전술한 측면들을 실행하기 위해 설계된 프로그램을 포함한다.
또 다른 측면에 따르면, 본 발명의 실시예는 전술한 프록시 서버에 의해 사용되는 컴퓨터 소프트웨어 명령어를 저장하도록 구성된 컴퓨터 저장 매체를 제공하며, 상기 컴퓨터 저장 매체는 전술한 측면들을 실행하기 위해 설계된 프로그램을 포함한다.
또 다른 측면에 따르면, 본 발명의 실시예는 전술한 클라이언트에 의해 사용되는 컴퓨터 소프트웨어 명령어를 저장하도록 구성된 컴퓨터 저장 매체를 제공하며, 상기 컴퓨터 저장 매체는 전술한 측면들을 실행하기 위해 설계된 프로그램을 포함한다.
종래기술과 비교하여, 본 출원에서 제공되는 웹사이트 액세스 방법, 장치, 및 웹사이트 시스템에 따르면, 웹사이트의 버전 업그레이드 동안에, 개발자는 콘텐츠 파일의 URL을 수동으로 변경할 필요가 없고, 콘텐츠 파일의 명명(naming) 및 갱신에 대해 걱정할 필요도 없어, 웹사이트 업그레이드 효율을 향상시킨다. 또한, 일부 콘텐츠 파일의 갱신은 다른 파일에 영향을 미치지 않으므로, 웹사이트의 완전 업그레이드가 불필요하고 업그레이드 위험은 낮아진다.
본 발명의 실시예에서의 기술적 방안 또는 종래기술을 더욱 명확하게 설명하기 위해, 이하에 실시예 또는 종래기술의 설명에 필요한 첨부도면을 간략하게 소개한다. 명백히, 이하의 설명에서의 첨부도면은 본 발명의 일부 실시예를 보여줄 뿐이며, 해당 기술분야의 통상의 지식을 가진자(이하, 당업자라고 함)는 창의적인 노력 없이 이들 첨부도면으로부터 다른 구현 방식을 도출할 수 있을 것이다. 이러한 모든 실시예 또는 구현방식은 본 발명의 보호범위에 속해야 한다.
도 1a는 본 발명을 구현하기 위한 시스템의 가능한 개략 구성도이다.
도 1b는 본 발명을 구현하기 위한 시스템의 다른 가능한 개략 구성도이다.
도 1c는 본 발명을 구현하기 위한 시스템의 또 다른 가능한 개략 구성도이다.
도 2는 본 발명의 실시예에 따른 컴퓨터 기기의 개략도이다.
도 3은 본 발명의 실시예에 따른 브라우저 클라이언트로 웹 서버를 액세스하기 위한 방법의 개략 흐름도이다.
도 4는 본 발명의 실시예에 따른 웹 서버의 개략 구성도이다.
도 5는 본 발명의 실시예에 따른 프록시 서버의 개략 구성도이다.
도 6은 본 발명의 실시예에 따른 브라우저 클라이언트의 개략 구성도이다.
도 7은 본 발명의 실시예에 따른 웹사이트 시스템의 개략 구성도이다.
이하에 첨부도면을 참조하여 본 발명의 실시예에 따른 기술적 방안을 명확하고 완전하게 설명한다. 명백히, 설명되는 실시예는 본 발명의 실시예의 전부가 아니라 일부일 뿐이다. 당업자가 본 발명의 실시예에 기초하여 창의적인 노력 없이 얻은 모든 다른 실시예는 본 발명의 보호 범위에 속한다.
본 발명의 실시예에서 설명되는 네트워크 아키텍처 및 서비스 시나리오의 목적은 본 발명의 실시예에서의 기술적 방안을 더욱 명확하게 설명하는 것이며, 이는 본 발명의 실시예에서의 기술적 방안에 대한 제한사항을 구성하지는 않는다. 당업자는 네트워크 아키텍처의 진화 및 새로운 서비스 시나리오의 출현으로, 본 발명의 실시예에서의 기술적 방안이 유사한 기술적 문제에도 적용 가능하다는 것을 알 수 있을 것이다.
본 발명의 실시예에서, 웹 서버는 웹 애플리케이션 프로그램을 배치하고 자원 파일을 저장하도록 구성된다. 복수의 웹 서버는 하나의 웹사이트를 운영할(bear) 웹 서버 클러스터를 구성할 수 있다. 웹 서버상에 저장된 파일은 일반적으로 자원 파일이라고 하며, 애플리케이션 특정 구성 파일(application-specific configuration file), 웹 페이지 템플릿(web page template), 등을 포함한다. 애플리케이션 프로그램 코드는 파일 시스템을 사용하여 이러한 파일에 액세스할 수 있다. 본 발명의 실시 예에서 언급되는 콘텐츠 파일은 일반적으로 웹 서버상에서 관리되는(hosted) 정적 자원 파일이다. 정적 자원 파일은 모든 사용자에게 일관되며, 일반적으로 응용 프로그램을 실행할 때 정상적인 환경에서는 변경되지 않는다. 콘텐츠 파일은 웹 페이지 미디어 파일(예: 이미지), 화면상에 웹 페이지를 생성하는 방법을 설명하는 캐스케이딩 스타일 시트(Cascading Style Sheet, css) 파일, 브라우저에 의해 다운로드되어 실행될 수 있는 JavaScript 코드, 동적 콘텐츠(dynamic content)를 포함하지 않는 HTML 페이지 등을 포함할 수 있다. HTTP 요청을 수신한 경우, 웹 서버는, 클라이언트에, HTTP 요청에 대응하는 html 및 html에 의해 참조되는 콘텐츠 파일의 주소를 클라이언트에 회신한다.
가능한 구현 방식에서, 웹사이트의 배치 프로세스(deployment process) 및 웹사이트의 프론트 엔드(front-end)는 애플리케이션 프로그램의 어떤 파일이 정적 자원 파일인지를 알아야 한다. 배치 프로세스는 정적 자원 파일을 웹 서버에 전송하고, 프런트 엔드는 정적 자원 파일에 대한 URL 경로를 저장하므로, 프런트 엔드는 정적 자원 파일에 대한 URL 경로에 관한 요청을 적절한 웹 서버로 라우팅할 수 있다. 본 발명의 실시예에서, 프록시 서버가 프론트 엔드의 기능을 구현할 수 있다.
본 발명의 실시예에 관련된 주요 구성요소는 다음과 같다:
클라이언트: 웹 브라우저는 클라이언트 상에서 실행되므로, 클라이언트는 브라우저 클라이언트라고도 한다. 브라우저 클라이언트는 네트워크를 사용하여 시스템 측에 있는 프록시 서버 및 웹 서버에 연결되며, 브라우저 클라이언트는 HTTP 요청을 발송하도록 구성된다. 이 애플리케이션에 관련된 클라이언트는 다양한 핸드헬드 기기(handheld device), 차량 내 기기(in-vehicle device), 웨어러블 기기(wearable device), 컴퓨팅 기기 또는 다양한 유형의 네트워크에 연결된 다른 처리 기기를 포함할 수 있으며, 이들 기기는 무선 통신 기능을 구비하고, 클라이언트도 또한 다양한 형태의 클라이언트, 이동국(Mobile station, 약칭하여 MS), 단말기(terminal), 단말 장비(Terminal Equipment) 등을 포함할 수 있다. 설명의 편의를 위해, 이 애플리케이션에서는 전술한 기기들을 모두 클라이언트라고 한다.
웹 서버: 웹 서버는 웹 애플리케이션 프로그램을 배치하고 콘텐츠 파일(즉, 정적 자원 파일)을 저장하도록 구성되고, 웹 서버는 관리 서버 및 프록시 서버에 연결된다. 하나 이상의 웹 서버가 있을 수 있으며, 복수의 웹 서버가 웹 서버 클러스터를 구성한다. 브라우저 클라이언트에 의해 전송되는 액세스 요청을 수신한 경우, 프록시 서버는 브라우저 클라이언트에 서비스를 제공하기 위해 부하 분산(load balancing)을 수행하여 웹 서버 클러스터에서 적절한 웹 서버를 선택할 수 있다.
프록시 모듈: 프록시 모듈은 콘텐츠 파일의 버전 파라미터의 질의 및 콘텐츠 파일의 URL 갱신을, 플러그인 형태로 구현할 수 있다. 선택적으로, 프록시 모듈은 추가로 웹 서버에 의해 전송되는 액세스 응답 내의 쿠키 콘텐츠(cookie content)를 갱신할 수 있다. 일례에서, 프록시 모듈은 관리 모듈에 연결되고, 관리 모듈로부터 웹사이트의 현재 버전의 버전 파라미터를 취득할 수 있다.
관리 모듈: 관리 모듈은 웹사이트 버전 관리 기능, 버전 파라미터 생성 기능 등을 제공하도록 구성된다. 버전 파라미터 생성 기능은 관리 모듈의 버전 생성기에 의해 구현될 수 있다. 버전 파라미터는 웹사이트의 현재 버전을 지시하는 데 사용되며, 웹사이트의 버전을 유일하게 식별할 수 있으면 임의의 포맷 또는 임의의 형태의 파라미터일 수 있다. 웹사이트의 버전 번호가 특정 버전 파라미터로 직접 사용될 수 있거나, 또는 웹사이트의 버전 번호에 따라 임의의 코드를 생성하고 이를 웹사이트의 현재 버전의 버전 파라미터로 사용한다. 본 발명의 실시예에서는 버전 파라미터의 구체적인 형태를 한정하지 않는다. 관리 모듈은 웹사이트의 현재 버전의 버전 번호를 저장하고, 프록시 모듈에 의해 전송되는 파일 질의 요청을 수신한 경우, 웹사이트의 현재 버전에 대응하는 버전 파라미터를 회신한다. 웹사이트가 업그레이드되는 경우, 관리 모듈은 다양한 방식으로 웹사이트의 현재 버전의 버전 번호를 취득한다. 관리 모듈은 웹사이트의 식별자를 기록하며, 하나의 웹사이트 식별자는 하나의 웹사이트에 대응하고, 그 웹사이트를 유일하게 식별하는 데 사용될 수 있다. 웹사이트의 버전 각각은 웹사이트의 한 번의 업그레이드에 대응하고, 웹사이트의 버전 각각은 유일한 버전 파라미터에 대응한다.
전술한 프록시 모듈 및 관리 모듈은 기능 모듈의 형태로 웹 서버상에 구현될 수 있거나, 또는 독립된 물리 서버상에 구현될 수 있다. 독립적인 물리 서버의 형태로 구현되는 경우, 프록시 모듈은 프록시 서버라고 할 수 있다. 독립적인 물리 서버의 형태로 구현되는 경우, 관리 모듈은 관리 서버라고 할 수 있다. 본 발명의 실시 예는 프록시 모듈 및 관리 모듈의 기능에 초점을 맞춘다. 당업자는 프록시 모듈과 관리 모듈의 기능이 다른 서버상에 구현될 수 있고, 본 발명의 실시예에서는 이를 한정하지 않는다는 것을 이해할 수 있을 것이다. 일례에서, 프록시 서버는 웹 서버 프런트 엔드에 배치되며, 웹 서버에 대한 HTTP 요청 처리를 위한 부하 분산기(load balancer)로 사용될 수 있다. 프록시 서버의 기능은 기존의 Nginx 또는 HAProxy에 통합될 수 있다.
도 1a에 도시된 바와 같이, 도 1a는 본 발명의 실시예에 따른 웹사이트 시스템의 개략 구성도이다. 클라이언트는 네트워크를 사용하여 웹 서버에 연결되고, 웹 브라우저는 클라이언트상에 설치되며, 프록시 서버는 클라이언트와 웹 서버 사이에 위치하고, 관리 서버는 웹사이트 버전 정보를 관리하도록 구성된다. 이 경우, 웹 서버, 프록시 서버 및 관리 서버는 서로 다른 물리 서버에 분산되어 있다. 도 1b에 도시된 바와 같이, 도 1b는 본 발명의 실시예에 따른 다른 웹사이트 시스템의 개략 구성도이다. 이 경우, 프록시 모듈 형태의 프록시 서버가 웹 서버 클러스터 내에 하나의 웹 서버와 함께 배치된다. 도 1c에 도시된 바와 같이, 도 1c는 본 발명의 실시예에 따른 또 다른 웹사이트 시스템의 개략 구성도이다. 관리 모듈 형태의 관리 서버는 프록시 서버와 함께 배치된다. 유의해야 할 것은, 본 발명의 실시예는 시스템 내의 요소들이 본 발명의 실시예에서의 대응하는 기능들을 구현할 수 있다면, 웹사이트 시스템의 구체적인 하드웨어 구현 방식을 엄격하게 한정하지 않는다는 것이다.
도 2는 본 발명의 실시예에 따른 컴퓨터 기기의 개략도이다. 컴퓨터 기기(200)는 하나 이상의 프로세서(201), 통신 버스(202), 메모리(203) 및 하나 이상의 통신 인터페이스(204)를 포함한다.
프로세서(201)는 범용(general purpose) 중앙 처리 유닛(central processing unit, CPU), 마이크로프로세서, 주문형 반도체(application-specific integrated circuit, ASIC), 또는 본 발명의 해결방안 프로그램의 실행을 제어하기 위한 하나 이상의 집적회로일 수 있다.
통신 버스(202)는 전술한 구성 요소들 간의 정보 전달을 위한 경로를 포함할 수 있다. 통신 인터페이스(304)는, 이더넷 네트워크(Ethernet network), 무선 액세스 네트워크(radio access network, RAN), 무선 로컬 영역 네트워크(wireless local area network, WLAN)와 같은, 다른 장치 또는 통신 네트워크와 통신할 임의의 트랜시버 유사 장치(transceiver like apparatus)를 사용한다.
메모리(203)는 정적 정보 및 명령어를 저장하기 위한 판독 전용 메모리(read-only memory, ROM)나 임의의 유형의 정적 저장 기기, 정보 및 명령어를 저장하기 위한 임의 접근 메모리(random access memory, RAM)나 임의의 유형의 동적 저장 기기, 전기적으로 소거 가능하고 프로그램 가능한 판독 전용 메모리((Electrically Erasable Programmable Read-Only Memory, EEPROM), 컴팩트 디스크 판독 전용 메모리(Compact Disc Read-Only Memory, CD-ROM)나 다른 광디스크 스토리지(optical disk storage), 광디스크 스토리지(optical disc storage)(컴팩트 디스크, 레이저 디스크, 광디스크, 디지털 버스타일 디스크(digital versatile disc), 블루레이 광디스크(blu-ray optical disc) 등을 포함함), 또는 자기 디스크 저장 매체나 다른 자기 저장 기기, 또는 명령어 또는 데이터 구조 형태로 예상 프로그램 코드(expected program code) 싣거나 저장하는 데 사용될 수 있는 임의의 다른, 컴퓨터로 액세스할 수 있는 매체일 수 있지만, 이에 한정되는 것은 아니다. 메모리는 독립적으로 존재할 수 있으며, 버스를 사용하여 프로세서에 연결된다. 메모리는 프로세서와 통합될 수 있다.
메모리(203)는 본 발명의 해결방안의 애플리케이션 프로그램 코드를 저장하도록 구성되며, 프로세서(201)가 실행을 제어한다. 프로세서(201)는 메모리(203)에 저장된 애플리케이션 프로그램 코드를 실행하도록 구성된다.
구체적인 구현 시에, 실시예에서, 프로세서(201)는, 예를 들어, 도 2의 CPU0 및 CPU1과 같은, 하나 이상의 CPU를 포함할 수 있다.
구체적인 구현 시에, 실시예에서, 컴퓨터 기기(200)는 복수의 프로세서, 예를 들어, 도 2의 프로세서(201) 및 프로세서(208)를 포함할 수 있다. 각각의 프로세서는 싱글코어 프로세서(single-core processor)(단일 CPU)일 수 있거나, 또는 멀티코어 프로세서(multi-core processor)(다중 CPU)일 수 있다. 본 명세서에서 프로세서는 데이터(예: 컴퓨터 프로그램 명령어)를 처리하는 하나 이상의 기기, 회로 및/또는 처리 코어일 수 있다.
구체적인 구현 시에, 실시예에서, 컴퓨터 기기(200)는 출력 기기(205) 및 입력 기기(206)를 더 포함할 수 있다. 출력 기기(205)는 프로세서(201)와 통신하고, 여러 방식으로 정보를 표시할 수 있다. 예를 들어, 출력 기기(205)는 액정 디스플레이(liquid crystal display, LCD), 발광 다이오드(light emitting diode, LED) 디스플레이 기기, 음극선관(cathode ray tube, CRT) 디스플레이 기기, 프로젝터(projector) 등일 수 있다. 입력 기기(206)는 프로세서(201)와 통신하며, 여러 방식으로 사용자 입력을 수신할 수 있다. 예를 들어, 입력 기기(206)는 마우스, 키보드, 터치스크린 기기, 센서 기기 등일 수 있다.
전술한 컴퓨터 기기(200)는 범용 컴퓨터 기기 또는 전용 컴퓨터 기기일 수 있다. 구체적인 구현 시에, 컴퓨터 기기(200)는 데스크톱 컴퓨터, 휴대형 컴퓨터, 네트워크 서버, 팜톱 컴퓨터(palmtop computer)(개인 휴대 정보 단말기: Personal Digital Assistant(PDA)), 이동 전화기, 태블릿 컴퓨터, 무선 단말 기기, 통신 기기, 임베디드 기기(embedded device), 또는 도 2의 구성과 유사한 구성을 가지는 기기일 수 있다. 본 발명의 실시예는 컴퓨터 기기(200)의 유형을 한정하지 않는다.
도 1a, 도 1b, 및 도 1c의 웹 서버, 프록시 서버, 관리 서버 및 클라이언트는 도 2에 도시된 기기일 수 있다. 메모리는 웹 서버, 관리 서버 및 클라이언트의 기능 (예: 관리 서버 내의 웹사이트 버전 관리 기능 및 버전 파라미터 생성 기능)을 구현하기 위한 하나 이상의 소프트웨어 모듈을 저장한다. 웹 서버, 프록시 서버, 관리 서버 및 클라이언트는 프로세서 및 메모리에 저장된 프로그램 코드를 사용하여 브라우저 클라이언트에 의한 웹 서버를 액세스하는 방법을 구현할 수 있다.
유의해야 할 것은, 도 2에 도시된 컴퓨터 기기는, 웹사이트 시스템 내의 요소의 가능한 하드웨어 구현 방식만을 제공한다는 것이다. 컴퓨터 기기의 하드웨어 구성요소는 시스템 요소의 차이나 기능 변경에 따라, 시스템 내의 요소의 기능과 일치하도록 추가되거나 제거될 수 있다.
전술한 웹사이트 시스템에서, 웹 서버는 웹사이트의 정적 자원 파일을 저장한다. 프록시 서버는 웹 서버에 의해 브라우저 클라이언트에 회신되는 액세스 응답을 인터셉트하고, 액세스될 페이지에 포함되어 있는 정적 자원 파일의 현재 URL에 웹사이트의 현재의 버전 번호에 대응하는 버전 파라미터를 추가한다. 프록시 서버는 현재 URL을 브라우저 클라이언트에 회신한다. 이 애플리케이션에서 제공되는 해결방안을 사용함으로써, 브라우저 클라이언트는 현재 URL에 따라 웹 서버로부터 정적 자원 파일을 취득할 수 있다. 웹사이트의 버전을 업그레이드하는 동안에, 개발자는 정적 자원 파일에 대한 경로를 변경할 필요가 없고, 자원 파일의 URL을 수동으로 갱신할 필요가 없으며, 정적 자원 파일의 이름도 갱신할 필요가 없다. 이는 웹사이트 업그레이드 효율성을 향상시킨다. 한편으로는, 콘텐츠 파일의 파일명이 웹사이트의 업그레이드 프로세스에서 변경될 필요가 없으므로, 콘텐츠 파일을 참조하는 다른 파일은 영향을 받지 않고, 콘텐츠 파일을 참조하는 다른 파일의 파일명도 변경될 필요가 없어, 웹사이트의 대량의 파일의 완전 업그레이드를 회피하고 업그레이드 위험을 낮춘다. 다른 한편으로는, 전술한 웹사이트의 업그레이드 프로세스에서, 콘텐츠 파일에 대한 경로는 변경될 필요가 없고, 따라서 콘텐츠 파일에 대한 경로는 개발자에 의해 재기록될 필요가 없어, 개발 비용을 감소시킨다.
도 3에 도시된 바와 같이, 도 3은 본 발명의 실시예에 따른 브라우저 클라이언트에 의한 웹 서버에 액세스하는 방법의 개략 흐름도이며, 다음 단계를 포함한다:
단계 301. 웹사이트의 정적 자원 파일을 갱신한다.
웹사이트가 업그레이드되는 경우, 갱신된 정적 자원 파일이 웹사이트의 웹 서버에 배치되며, 웹사이트의 현재의 버전 번호가 결정된다.
단계 302. 관리 서버가 웹사이트의 버전을 관리하고, 웹사이트의 현재의 버전 번호를 기록한다.
유의해야 할 것은, 구체적인 방안의 구현 시에, 관리 서버는 다음 방식 중 어느 하나의 방식으로 웹사이트의 현재 버전의 버전 번호를 취득할 수 있다는 것이다:
방식 1: 업그레이드 스크립트 파일을 실행한다. 업그레이드 스크립트는 웹 서버 또는 다른 독립 서버상에서 실행되고, 웹사이트의 버전 번호는 업그레이드 스크립트 파일에 구성된다. 웹사이트를 업그레이드하는 프로세스에서, 업그레이드 스크립트 파일을 실행함으로써, 웹 서버 내의 웹사이트는 먼저 정적 자원 파일을 갱신하도록 업그레이되고, 그 후, 업그레이드 스크립트 파일이 관리 서버의 인터페이스를 호출하여, 관리 서버상에, 웹사이트의 최신 버전 번호를 구성한다.
방식 2: 수동 실행, 운영 및 유지보수 인력이, 웹사이트의 웹 서버상의 정적 자원 파일을 갱신하고, 관리 서버에 의해 제공되는 인터페이스를 사용하여 관리 윈도(management window)에 웹사이트의 최신 버전 번호를 기록함으로써, 웹사이트를 업그레이드한다.
방식 3: 구성 관리 도구. 관리 도구는 웹사이트의 업그레이드 프로세스를 모니터하고 버전 저장소에서 웹사이트의 업그레이된 버전 번호를 자동으로 취득하는 데 사용될 수 있거나, 또는 관리 도구는 웹 서버 내의 웹사이트 버전 번호의 변경을 직접 모니터할 수 있다. 버전 저장소에는 동일한 웹사이트에 대해 많은 버전이 존재할 수 있다. 관리 도구는, 웹사이트가 업그레이드된 최신 버전을 취득하기 위해, 사전 정의(pre-defining ) 버전 번호 정의 규칙, 업그레이드 시작 시각 매칭, 등을 포함하지만 이에 한정되지 않는, 여러 방식을 사용할 수 있다.
방식 4: 웹 서버는 웹사이트의 현재 버전을 설명하기 위한 버전 설명 파일을 저장한다. 관리 서버는 버전 설명 파일을 취득하여 웹사이트의 버전 번호를 추출할 수 있다.
단계 303. 관리 서버가 웹사이트의 현재 버전의 버전 번호에 대응하는 버전 파라미터를 생성하고, 웹사이트의 식별자, 버전 번호, 및 버전 파라미터 사이의 대응관계를 기록하며, 웹사이트의 식별자는 관리 서버상의 웹사이트의 유일한 식별자이다.
유의해야 할 것은, 웹사이트의 현재 버전의 버전 번호가 버전 파라미터로 직접 사용될 수 있다는 것이다. 버전 파라미터의 구체적인 구현 형태는 본 발명의 본 실시예로 한정되지 않는다.
단계 304. 브라우저 클라이언트가 웹 서버에 액세스 요청을 전송하며, 액세스 요청은 프록시 서버를 사용하여 웹 서버에 전송된다.
일례에서, 사용자가 브라우저 클라이언트 윈도에 웹사이트의 액세스될 페이지의 주소를 입력하고, 브라우저 클라이언트가 웹사이트의 웹 서버에 HTTP 요청을 전송하며, HTTP 요청은 액세스될 페이지를 지시하는 데 사용되고, HTTP 요청 내의 주소는 액세스될 페이지의 주소이다. 웹 서버는 액세스될 웹사이트에 서비스를 제공하는 웹이며, 액세스될 페이지에 포함된 정적 자원 파일은 웹 서버에 저장되어 있다.
일례에서, 웹사이트는 하나의 웹 서버상에 배치되거나 복수의 서버로 구성되는 웹 서버 클러스터 내에 배치될 수 있다. 프록시 서버는 HTTP 요청에 대한 부하 분산을 수행하는 데 사용되어, HTTP 요청에 대한 적절한 웹 서버를 선택할 수 있다.
단계 305. 웹 서버가 프록시 서버를 사용하여 브라우저 클라이언트에 제1 액세스 응답을 회신하며, 제1 액세스 응답은 색인(index) 파일을 싣고 있고, 색인 파일은 액세스될 페이지에 포함되어 있는 정적 자원 파일의 초기 URL을 포함한다.
본 발명의 본 실시예에서, 웹 서버에 의해 회신되는 색인 파일 중의 URL은 액세스될 페이지에 포함되어 있는 정적 자원 파일의 초기 URL이고, 초기 URL은 정적 자원 파일의 원래 경로 정보를 포함한다. 유의해야 할 것은 원래 경로 정보는 정적 자원 파일의 절대 주소 또는 상대 주소일 수 있으며, 본 발명의 본 실시예에서는 이를 한정하지 않는다는 것이다. 원래 경로 정보는 웹사이트의 버전 정보를 포함하지 않는다. 즉, 웹사이트의 업그레이드는 원래 경로 정보의 변경을 야기하지 않는다.
단계 306. 프록시 서버가 제1 액세스 응답을 인터셉트하고, 관리 서버에 버전 질의 요청을 전송하며, 버전 질의 요청은 웹사이트의 현재 버전의 버전 번호에 대응하는 버전 파라미터를 질의하기 위한 웹사이트의 식별자를 싣고 있다.
일례에서, 프록시 서버는 웹 서버에 의해 브라우저 클라이언트에 회신되는 모든 파일을 인터셉트하지는 않는다. 프록시 서버는, 웹 서버에 의해 회신되는 파일의 파일 유형에 따라, 인터셉션의 수행 여부를 판정하여, 정적 자원 파일의 URL을 싣고 있는 파일만을 인터셉트한다. 구체적으로, 프록시 서버는 제1 액세스 응답에 실려 있는 색인 파일의 파일 유형을 결정한다. 파일이 css 파일 또는 html 파일인 경우, 제1 액세스 응답을 인터셉트한다. 파일이 css 파일 또는 html 파일이 아닌 경우, 제1 액세스 응답을 브라우저 클라이언트에 투명하게 송신한다.
다른 예로, 프록시 서버는 버전 서버의 기능을 구현한다. 이 경우에, 프록시 서버는 웹사이트의 현재 버전의 버전 파라미터를 생성하거나 웹사이트의 현재 버전을 버전 파라미터로 직접 사용한다.
단계 307. 관리 서버는, 버전 질의 요청에 실려 있는 웹사이트의 식별자에 따라, 웹사이트의 식별자와 웹사이트의 버전 번호 및 버전 파라미터 사이의 대응관계를 질의하여 웹사이트의 현재의 버전 번호에 대응하는 버전 파라미터를 취득하고, 버전 파라미터 질의 응답을 프록시 서버에 회신하며, 버전 파라미터 질의 응답은 버전 파라미터를 싣고 있다.
단계 308. 프록시 서버가 버전 파라미터 질의 응답을 수신하고, 정적 자원 파일의 원래 URL 및 웹사이트의 현재 버전의 버전 파라미터에 따라 정적 자원 파일의 현재 URL을 생성하며, 현재 URL은 경로 정보 부분과 검색 부분을 포함하고, 경로 정보 부분은 콘텐츠 파일의 원래 경로 정보를 포함하고, 검색 부분은 웹사이트의 현재 버전의 버전 파라미터를 포함한다.
프록시 서버는 색인 파일에 포함되어 있는 정적 자원 파일의 초기 URL을 생성된 현재 URL로 대체한다.
예시적으로, 본 발명의 본 실시예에서는 URL의 구조를 설명한다. RFC 1738 표준에서의 정의(링크: https://www.ietf.org/rfc/rfc1738.txt)에 따르면, URL의 포맷은 다음과 같다:
http://<host>:<port>/<path>?<searchpart>
여기서, <host>는 도메인 명칭 또는 IP 주소를 나타내고, <port>는 포트 번호를 나타내고, <path> 는 정적 자원 파일을 취득하기 위한 경로를 지시하는 데 사용될 수 있는 경로 정보 부분이고, <searchpart>는 URL 파라미터를 나태내는 검색 부분이다. "?"는 검색 부분과 경로 정보 부분을 분리하는, 검색 부분의 시작점을 나타낸다. 본 발명의 본 실시예에서, 버전 파라미터는 전술한 URL 포맷 중의 검색 부분에 실려 있으므로, 정적 자원 파일의 취득을 위한 경로는 영향을 받지 않는다. 웹사이트가 업그레이드되는 경우, 경로 정보 부분은 변경되지 않으므로, 개발자는 정적 자원 파일에 대한 경로를 갱신할 필요가 없고, 정적 자원 파일의 파일명도 변경할 필요가 없다. 이는 개발 비용을 감소시킨다.
예시적으로, 구체적인 구현 방식에서, 색인 파일의 원래 URL은 <link src="theme/logo.gif">이고, 프록시 서버는 원래 URL을 <link src="theme/ logo.gif?ttl=345672">로 대체하며, 문자열(string) 345672은 정적 자원 파일 logo.gif이 위치하는 웹사이트의 현재 버전에 대응하는 버전 파라미터이고, 문자열은 버전 번호에 대해 해시를 수행함으로써 생성될 수 있다.
단계 309. 프록시 서버가 브라우저 클라이언트에 제2 액세스 응답을 회신하며, 제2 액세스 응답은 갱신된 색인 파일을 싣고 있고, 갱신된 색인 파일은 정적 자원 파일의 현재 URL을 포함한다.
단계 310. 브라우저 클라이언트는 제2 액세스 응답을 수신하고, 정적 자원 파일의 갱신된 URL을 추출한다.
단계 311. 브라우저 클라이언트는 웹 서버에, 정적 자원 파일의 갱신된 URL을 싣고 있는 파일 취득 요청을 전송하여, 웹 서버에 정적 자원 파일을 요청한다. 웹 서버는 파일 취득 요청을 수신하고, 정적 자원 파일의 현재 URL에 따라 정적 자원 파일을 추출하여, 그 정적 자원 파일을 브라우저 클라이언트에 회신한다.
일례에서, 브라우저 클라이언트는 추가로, 수신된 정적 자원 파일을 캐시에 로컬로 저장하여, 정적 자원 파일의 파일명 및 버전 파라미터를 기록한다. 웹사이트에 다시 액세스하는 경우, 액세스될 페이지에 포함되어 있는 정적 자원 파일의 URL을 취득한 후, 브라우저 클라이언트는 추가로, 정적 자원 파일의 URL에 포함된 파일명 및 버전 파라미터에 따라, 액세스될 페이지가 이미 캐시에 로컬로 저장되어 있는지를 판정한다. 이미 캐시에 저장되어 있으면 판독될 정적 자원 파일을 웹 서버로부터 다시 취득할 필요가 없다. 이는 웹사이트 액세스의 속도를 향상시킨다.
또한, HTTP 프로토콜이 캐시에의 저장을 지원하는 메커니즘을 사용함으로써, 제1 액세스 응답은 브라우저 클라이언트 측이 정적 자원 파일 및 캐시 지속기간을 캐시에 저장할 필요가 있는지를 지시하는 데 사용되는 캐시 설정 파라미터를 더 포함할 수 있다. 구체적으로, 캐시 설정 파라미터는 캐시에의 저장 및/또는 만료(expire)의 파라미터일 수 있고, 캐시 설정은 HTTP 프로토콜에서의 정의에 기초한다. 프록시 서버에 의해 브라우저 클라이언트에 전송되는 제2 액세스 응답도 또한 캐시 설정 파라미터를 싣고 있다. 캐시 설정 파라미터는 캐시 만료 시간의 권장 값(recommended value)을 싣고 있다. 브라우저 클라이언트가 이 권장 값을 받아들이기로 선택하면, 정적 자원 파일은 권장 값에 대응하는 지속기간 동안 캐시에 저장된다. 이 지속기간 내에는, 정적 자원 파일의 로컬 복제본(local copy )이 직접 사용되어 정적 자원 파일을 웹 서버로부터 다시 취득할 필요가 없다. 이는 네트워크 대역폭의 소비를 감소시킨다. 웹사이트가 업그레이드된 후, 정적 자원 파일에 대응하는 버전 파라미터는 변경된다. 브라우저 클라이언트는, 수신된 URL에 포함되어 있는 정적 자원 파일의 파일명 및 버전 파라미터에 따라, 로컬로 저장된 정적 자원 파일이 만료되었음을 결정할 수 있다. 이 경우, 정적 자원 파일을 취득하기 위한 전술한 절차는 로컬로 캐시에 저장된 정적 자원 파일을 갱신하기 위해 실행될 필요가 있다.
본 발명의 본 실시예에서, 프록시 서버는, 웹 서버로부터의 액세스 응답에 대한 인터셉션 및 수정의 구현을 위해, 브라우저 클라이언트와 웹 서버 사이에 추가된다. 파일명이 파일 콘텐츠의 해시 값에 기초하여 갱신되는 종래기술과는 달리, 본 발명의 본 실시예에서, 프록시 서버는, 웹사이트의 버전 파라미터에 기초하여, 브라우저 클라이언트에 의해 액세스되는 정적 자원 파일의 현재 URL을 갱신하고, 현재 URL의 검색 부분에 버전 파라미터를 추가하며, 웹사이트가 업그레이드되는 경우 갱신된 정적 자원 파일을 브라우저 클라이언트에 제공하고, 브라우저 클라이언트 측의 캐시에 저장된 파일을 갱신한다. 웹사이트의 버전 업그레이드 프로세스에서, 개발자는 정적 자원 파일에 대한 경로를 변경할 필요가 없고, 자원 파일의 URL을 수동으로 갱신할 필요가 없으며, 정적 자원 파일의 이름도 갱신할 필요가 없다. 이는 웹사이트 업그레이드 효율을 향상시킨다. 한편으로는, 콘텐츠 파일의 파일명을 웹사이트의 업그레이드 프로세스에서 변경할 필요가 없으므로, 콘텐츠 파일을 참조하는 다른 파일은 영향을 받지 않고, 콘텐츠 파일을 참조하는 다른 파일의 파일명도 변경할 필요가 없어, 웹사이트의 대량의 파일의 완전 업그레이드를 회피하고 업그레이드 위험을 낮춘다. 다른 한편으로는, 전술한 웹사이트의 업그레이드 프로세스에서, 콘텐츠 파일에 대한 경로를 변경할 필요가 없고, 따라서 콘텐츠 파일에 대한 경로는 개발자에 의해 재기록될 필요가 없어, 개발 비용을 감소시킨다.
유의해야 할 것은, 본 발명의 본 실시예에서는, 우선적으로, 웹사이트의 홈페이지(Home.html)는 캐시에 저장되어 있지 않다. 브라우저 클라이언트가 웹사이트의 홈 페이지에 로그인해야 하는 경우, 홈 페이지에 대응하는 색인 파일은 항상 웹 서버로부터 취득되어야 한다. 웹사이트의 버전이 갱신되는 경우, 브라우저 클라이언트는 최신 정적 자원 파일을 취득할 수 있다.
프록시 서버는 계층 7 부하 분산기(layer 7 load balancer)라고도 한다. 예를 들어, 기존의 Nginx와 기존의 HAProxy는 둘 다 그러한 서비스를 제공할 수 있다.
또한, 일례에서, 브라우저 클라이언트는 AJAX(Asynchronous JavaScript And Extensible Markup Language, 비동기 자바스크립트 및 확장 가능한 마크업 언어)를 지원할 수 있다. 종래의 웹 페이지(AJAX 기술이 사용되지 않음)상에서, 페이지 콘텐츠가 갱신되어야 하면, 웹 페이지 콘텐츠 중 일부만 변경되더라도 전체 웹 페이지를 다시 로드하여야 한다. 그러나 AJAX 기술의 경우, 브라우저 클라이언트와 웹 서버 사이에는 비동기 데이터 전송이 사용되고, 전체 웹 페이지를 다시 로드하지 않고서 웹 페이지 콘텐츠 중 일부에 대해 갱신이 수행될 수 있다. 이렇게 하여, 서버로부터 다운로드되는 데이터의 양을 줄일 수 있다.
AJAX는 상호작용 웹 페이지 애플리케이션을 제작하기 위한 웹 개발 기술이다. 브라우저 클라이언트 측은 AJAX 엔진을 포함하며, AJAX 엔진은 XmlHttpRequest 객체를 사용하여 웹 서버로부터 정적 자원 파일을 취득할 수 있다.
일례에서, AJAX 엔진은 자바스크립(JavaScript, JS) 파일을 실행하여 XmlHttpRequest 객체를 생성한다. XmlHttpRequest 객체는 HTTP 방법(Get/Post), 목적지 URL, 및 콜백 기능(callback function)을 포함하며, 목적지 URL은 취득될 정적 자원 파일의 URL이다. 유의해야 할 것은, 본 출원에서, AJAX 엔진이 자바스크립트를 사용하여 XmlHttpRequest 객체를 생성하는 방법은 기존의 AJAX 기술에서의 일반적인 방법일 수 있으며, 본 출원에서는 이를 한정하지 않는다.
또한, 단계 309는, 프록시 서버가, 제2 액세스 응답의 쿠키에, 웹사이트의 현재 버전에 대응하는 버전 파라미터를 추가하는 것을 더 포함할 수 있으며, 제2 액세스 응답에 실려 있는 갱신된 색인 파일은 제1 JS 파일의 파일명을 포함한다. 단계 310은, AJAX 엔진이 제1 JS 파일을 실행하여 XmlHttpRequest 객체를 생성하는 것을 더 포함할 수 있으며, XmlHttpRequest 객체 중의 목적지 URL은 제2 JS 파일의 파일명과, 버전 파라미터를 포함하고, XmlHttpRequest 객체는 웹 서버로부터 제2 JS 파일을 취득하는 데 사용되며, 제2 JS 파일은 제1 JS 파일에 의해 참조된다.
전술한 방식에 따르면, 브라우저 클라이언트가 AJAX 기술을 지원하고, 웹 서버에 의해 회신되는 색인 파일에 포함된 제1 JS 파일이 제2 JS 파일을 참조해야 하는 경우, 브라우저 클라이언트의 AJAX 엔진은 XmlHttpRequest 객체를 구성하고, XmlHttpRequest 객체에 실려 있는 제2 JS 파일의 목적지 URL에 버전 파라미터를 추가하여, 웹사이트가 업그레이드된 후에 취득되는 제2 JS 파일이 웹 서버로부터 취득될 수 있도록 한다. 이는 AJAX 요청의 경우에 정적 자원 파일의 취득 및 캐시 갱신에서의 문제를 해결한다.
일례에서, 웹사이트가 업그레이드되는 경우, 웹 서버상에 저장된 정적 자원 파일이 갱신된다. 브라우저 클라이언트가 처음으로 웹 서버에 액세스 요청을 전송하는 경우, 액세스될 페이지에 포함되어 있는 정적 자원 파일이 자동으로 다운로드되고, 로컬 캐시는 갱신된다. 후속하는 요청에서, 후속하여 액세스될 페이지에 포함된 정적 자원 파일이 이미 캐시에 로컬로 저장되어 있는 경우, 브라우저 클라이언트는, 웹 서버에의, 정적 자원 파일에 대한 파일 취득 요청을 시작하지 않는다. 따라서, 프록시 서버에 기초한 버전 파라미터의 추가는, 웹사이트가 업그레이드된 경우 또는 캐시가 만료된 경우에만 실행된다. 따라서, 본 발명의 본 실시예는 매우 양호한 웹사이트 응답 성능과 매우 양호한 동시 실행 능력(concurrency capability)을 제공할 수 있다.
도 4에 도시된 바와 같이, 전술한 방법 실시예에 대응하여, 도 4는 본 발명의 실시예에 따른 웹 서버의 개략 구성도이다. 웹 서버(400)는 서버 수신 모듈(401), 서버 취득 모듈(402), 서버 생성 모듈(403), 및 서버 전송 모듈(404)을 포함한다.
서버 수신 모듈(401)은 클라이언트로부터 액세스 요청을 수신하도록 구성되며, 액세스 요청은 웹사이트상의 액세스될 페이지를 지시한다.
서버 취득 모듈(402)은 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 초기 통일 자원 위치자(초기 URL) 및 웹사이트의 현재 버전의 버전 파라미터를 취득하도록 구성되며, 초기 URL은 콘텐츠 파일의 원래 경로 정보를 포함하고, 웹사이트의 버전 각각은 웹사이트의 한 번의 업그레이드에 대응하고, 웹사이트의 버전 각각은 유일한 버전 파라미터에 대응한다.
서버 생성 모듈(403)은 콘텐츠 파일의 초기 URL 및 웹사이트의 현재 버전의 버전 파라미터에 따라 콘텐츠 파일의 현재 URL을 생성하도록 구성되며, 현재 URL은 경로 정보 부분과 검색 부분을 포함하고, 경로 정보 부분은 콘텐츠 파일의 원래 경로 정보를 포함하고, 검색 부분은 웹사이트의 현재 버전의 버전 파라미터를 포함한다.
서버 전송 모듈(404)은 클라이언트에 액세스 응답을 회신하도록 구성되며, 액세스 응답은 콘텐츠 파일의 현재 URL을 싣고 있다.
서버 취득 모듈(402)은 여러 방식으로 웹사이트의 현재 버전의 버전 파라미터를 취득할 수 있으며, 구체적으로는 다음과 같다:
서버 취득 모듈(402)은 구체적으로, 웹사이트의 현재 버전의 버전 번호를 취득하고, 버전 번호에 따라 버전 파라미터를 생성하도록 구성되거나; 또는
서버 취득 모듈(402)은 구체적으로, 웹사이트의 현재 버전의 버전 번호를 취득하고, 웹사이트의 현재 버전의 버전 번호를 버전 파라미터로 사용하도록 구성되거나; 또는
서버 취득 모듈(402)은 구체적으로, 관리 서버로부터, 관리 서버에 의해 웹사이트의 식별자에 따라 회신되는 웹사이트의 현재 버전의 버전 파라미터를 취득하도록 구성된다.
서버 취득 모듈(402)은 구체적으로, 아래의 방식 중 어느 하나의 방식으로 웹사이트의 현재 버전의 버전 번호를 취득하도록 구성된다:
방식 1: 웹사이트의 버전 설명 파일을 취득하고, 버전 설명 파일에서 웹사이트의 현재 버전의 버전 번호를 판독함; 또는
방식 2: 운영 및 유지보수 인력에 의해 관리 인터페이스를 사용하여 기록되는 웹사이트의 현재 버전의 버전 번호를 수신함: 또는
방식 3: 업그레이드 스크립트 파일을 실행하고, 웹사이트 업그레이드의 완료 후, 웹사이트의 현재 버전의 버전 번호를 구성함; 또는
방식 4: 웹사이트의 버전 업그레이드 프로세스를 모니터하고, 웹사이트 버전 업그레이드의 완료가 결정된 후, 버전 저장소에서 웹사이트의 현재 버전의 버전 번호를 판독함.
서버 취득 모듈(402)은 구체적으로, 액세스될 페이지에 대응하는 색인 파일에 포함되어 있는 콘텐츠 파일의 초기 URL을 판독하도록 구성되고;
이에 상응하게, 서버 생성 모듈(403)은 추가로, 색인 파일에 포함되어 있는 콘텐츠 파일의 초기 URL을 생성된 현재 URL로 대체하고, 갱신된 색인 파일을 액세스 응답에 추가하도록 구성된다.
또한, 웹 서버에 의해 클라이언트에 회신되는 액세스 응답은 클라이언트가 콘텐츠 파일 및 캐시 지속기간을 캐시에 저장해야 하는지를 지시하는 데 사용되는 캐시 설정 파라미터를 포함한다. 액세스 응답의 쿠키는 추가로, 웹사이트의 현재 버전의 버전 파라미터를 실을 수 있어, 콘텐츠 파일의 요청 주소가 클라이언트 측에서 생성되는 경우 클라이언트가 쿠키로부터 버전 파라미터를 판독하여 그 버전 파라미터를 추가할 수 있도록 한다.
웹 서버는, 액세스될 페이지에 대응하는 색인 파일의 파일 유형을 결정하고, 색인 파일의 파일 유형에 따라, 색인 파일이 콘텐츠 파일의 초기 URL을 포함하는지를 판정하도록 구성된 판정 모듈을 더 포함할 수 있다. 구체적으로, 파일이 css 파일 또는 html 파일인 경우, 색인 파일은 콘텐츠 파일의 초기 URL을 포함한다.
도 5에 도시된 바와 같이, 도 5는 본 발명의 실시예에 따른 프록시 서버의 개략 구성도이다. 프록시 서버(500)는 인터셉션 모듈(501), 프록시 취득 모듈(502), 프록시 생성 모듈(503), 및 프록시 전송 모듈(504)을 포함한다.
인터셉션 모듈(501)은 웹 서버로부터의 제1 액세스 응답을 인터셉트하도록 구성되며, 제1 액세스 응답은, 웹 서버가 클라이언트로부터 액세스 요청을 수신한 후에 전송되고, 액세스 요청은 웹사이트상의 액세스될 페이지를 지시하며, 제1 액세스 응답은 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 초기 URL을 싣고 있고, 초기 URL은 콘텐츠 파일의 원래 경로 정보를 포함한다.
프록시 취득 모듈(502)은 웹사이트의 현재 버전의 버전 파라미터를 취득하도록 구성되며, 웹사이트의 버전 각각은 웹사이트의 한 번의 업그레이드에 대응하고, 웹사이트의 버전 각각은 유일한 버전 파라미터에 대응한다.
프록시 생성 모듈(503)은 콘텐츠 파일의 초기 URL 및 웹사이트의 현재 버전의 버전 파라미터에 따라 콘텐츠 파일의 현재 URL을 생성하도록 구성되며, 현재 URL은 경로 정보 부분과 검색 부분을 포함하고, 경로 정보 부분은 콘텐츠 파일의 원래 경로 정보를 포함하고, 검색 부분은 웹사이트의 현재 버전의 버전 파라미터를 포함한다.
프록시 전송 모듈(504)은 클라이언트에 제2 액세스 응답을 회신하도록 구성되며, 제2 액세스 응답은 콘텐츠 파일의 현재 URL을 싣고 있다.
또한, 프록시 취득 모듈(502)은 여러 방식으로 웹사이트의 현재 버전의 버전 파라미터를 취득할 수 있으며, 구체적으로는 다음과 같다:
프록시 취득 모듈(502)은 구체적으로, 웹사이트의 현재 버전의 버전 번호를 취득하고, 그 버전 번호에 따라 버전 파라미터를 생성하도록 구성되거나; 또는
프록시 취득 모듈(502)은 구체적으로, 웹사이트의 현재 버전의 버전 번호를 취득하고, 웹사이트의 현재 버전의 버전 번호를 버전 파라미터로 사용하도록 구성되거나; 또는
프록시 취득 모듈(502)은 구체적으로, 관리 서버로부터, 관리 서버에 의해 웹사이트의 식별자에 따라 회신되는 웹사이트의 현재 버전의 버전 파라미터를 취득하도록 구성된다.
프록시 취득 모듈(502)은 구체적으로, 아래의 방식 중 어느 하나의 방식으로 웹사이트의 현재 버전의 버전 파라미터를 취득하도록 구성된다:
방식 1: 웹사이트의 버전 설명 파일을 취득하고, 버전 설명 파일에서 웹사이트의 현재 버전의 버전 번호를 판독함; 또는
방식 2: 운영 및 유지보수 인력에 의해 관리 인터페이스를 사용하여 기록되는 웹사이트의 현재 버전의 버전 번호를 수신함: 또는
방식 3: 업그레이드 스크립트 파일을 실행하고, 웹사이트 업그레이드의 완료 후, 웹사이트의 현재 버전의 버전 번호를 구성함; 또는
방식 4: 웹사이트의 버전 업그레이드 프로세스를 모니터하고, 웹사이트 버전 업그레이드의 완료가 결정된 후, 버전 저장소에서 웹사이트의 현재 버전의 버전 번호를 판독함.
콘텐츠 파일의 초기 URL은 제1 액세스 응답의 색인 파일에 포함되어 있고;
이에 상응하게, 프록시 생성 모듈(503)은 추가로, 색인 파일에 포함되어 있는 콘텐츠 파일의 초기 URL을 생성된 현재 URL로 대체하고, 제2 액세스 응답에 갱신된 색인 파일을 추가하도록 구성된다.
도 6에 도시된 바와 같이, 도 6은 본 발명의 실시예에 따른, 클라이언트 전송 모듈(601) 및 클라이언트 수신 모듈(602)을 포함하는 클라이언트(600)의 개략 구성도이다.
클라이언트 전송 모듈(601)은 웹 서버에 액세스 요청을 전송하도록 구성되며, 액세스 요청은 웹사이트상의 액세스될 페이지를 지시한다.
클라이언트 수신 모듈(602)은 회신된 액세스 응답을 수신하도록 구성되며, 액세스 응답은 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 현재 URL을 싣고 있고, 현재 URL은 경로 정보 부분과 검색 부분을 포함하고, 경로 정보 부분은 콘텐츠 파일의 원래 경로 정보를 포함하고, 검색 부분은 웹사이트의 현재 버전의 버전 파라미터를 포함한다.
클라이언트 전송 모듈(601)은 추가로, 콘텐츠 파일을 취득하기 위해 웹 서버에 제1 요청 메시지를 전송하도록 구성되며, 제1 요청 메시지는 콘텐츠 파일의 현재 URL을 싣고 있다.
a) 또한, 클라이언트는 수신된 콘텐츠 파일을 캐시에 저장할 수 있으며, 구체적으로 클라이언트는,
웹사이트가 액세스되기 전에 취득된 콘텐츠 파일의 파일명 및 버전 파라미터를 저장하도록 구성된 저장 유닛(603); 및
콘텐츠 파일의 버전 파라미터 및 저장 파일명을 질의하여, 액세스될 페이지에 포함되어 있는 콘텐츠 파일이 캐시에 저장되어 있는지를 판정하도록 구성된 처리 유닛(604)을 더 포함하고, 저장되어 있지 않으면, 클라이언트 전송 모듈(601)이 파일 요청 메시지를 웹 서버에 전송한다.
또한, 액세스 응답의 쿠키는 버전 파라미터를 싣고 있고, 현재 URL은 구체적으로 제1 JS 파일의 URL이다.
클라이언트는, 쿠키로부터 버전 파라미터를 취득하고, 제1 JS 파일을 실행하여, XmlHttpRequest 객체를 생성하도록 구성된 AJAX 엔진(605)을 더 포함하고, XmlHttpRequest 객체에서의 목적지 URL은 버전 파라미터 및 제2 JS 파일의 원래 주소 정보를 포함하고, XmlHttpRequest 객체는 웹 서버로부터 제2 JS 파일을 취득하는 데 사용되며, 제2 JS 파일은 제1 JS 파일에 의해 참조된다.
도 7에 도시된 바와 같이, 도 7은 본 발명의 실시예에 따른 웹사이트 시스템이며, 웹 서버(400) 및 프록시 서버(500)를 포함한다.
웹 서버(400)는, 클라이언트로부터 웹사이트상의 액세스될 페이지를 지시하는 액세스 요청을 수신하고, 클라이언트에 제1 액세스 응답을 회신하도록 구성되며, 제1 액세스 응답은 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 현재 URL을 싣고 있고, 초기 URL은 콘텐츠 파일의 원래 경로 정보를 포함한다.
프록시 서버(500)는, 제1 액세스 응답을 인터셉트하고, 웹사이트의 현재 버전의 버전 파라미터를 취득하도록 구성되며, 웹사이트의 버전 각각은 웹사이트의 한 번의 업그레이드에 대응하고, 웹사이트의 버전 각각은 유일한 버전 파라미터에 대응한다.
프록시 서버(500)는 추가로, 콘텐츠 파일의 초기 URL 및 웹사이트의 현재 버전의 버전 파라미터에 따라 콘텐츠 파일의 현재 URL을 생성하고, 클라이언트에 제2 액세스 응답을 회신하도록 구성되며, 제2 액세스 응답은 콘텐츠 파일의 현재 URL을 싣고 있고, 현재 URL은 경로 정보 부분과 검색 부분을 포함하고, 경로 정보 부분은 콘텐츠 파일의 원래 경로 정보를 포함하고, 검색 부분은 웹사이트의 현재 버전의 버전 파라미터를 포함한다.
본 발명의 실시예에서 제공된 전술한 웹사이트 액세스 방법, 장치 및 웹사이트 시스템에 따르면, 웹사이트의 현재 버전의 버전 파라미터는 클라이언트에 회신되는 액세스 응답에 포함된 콘텐츠 파일의 URL의 검색 부분에 추가되므로, 클라이언트는 현재 URL에 따라 웹 서버로부터 콘텐츠 파일을 취득할 수 있다. 웹사이트의 버전을 업그레이드하는 동안에, 개발자는 콘텐츠 파일에 대한 경로를 변경할 필요가 없고, 콘텐츠 파일의 URL을 수동으로 갱신할 필요가 없으며, 콘텐츠 파일의 이름도 갱신할 필요가 없다. 이는 웹사이트 업그레이드 효율성을 향상시킨다. 한편으로는, 콘텐츠 파일의 파일명은 웹사이트의 업그레이드 프로세스에서 변경될 필요가 없고, 따라서 콘텐츠 파일을 참조하는 다른 파일은 영향을 받지 않고, 콘텐츠 파일을 참조하는 다른 파일의 파일명도 변경될 필요가 없어, 웹사이트의 대량의 파일의 완전 업그레이드를 회피하고 업그레이드 위험을 낮춘다. 다른 한편으로는, 전술한 웹사이트의 업그레이드 프로세스에서, 콘텐츠 파일에 대한 경로는 변경될 필요가 없고, 따라서 콘텐츠 파일에 대한 경로는 개발자에 의해 재기록될 필요가 없어, 개발 비용을 감소시킨다.
도 4 내지 도 7에 대응하는 실시예에서, 웹 서버(400), 프록시 서버(500), 브라우저 클라이언트(600) 및 관리 서버는 기능 유닛/기능 모듈의 형태로 제시되어 있다. 본 명세서에서의 "유닛/모듈"은 주문형 반도체(ASIC), 하나 이상의 소프트웨어나 펌웨어 프로그램을 실행하기 위한 프로세서와 메모리, 통합된 논리 회로, 및/또는 전술한 기능을 제공할 수 있는 다른 구성요소를 가리킬 수 있다. 간단한 실시예에서, 당업자라면 웹 서버(400), 프록시 서버(500), 브라우저 클라이언트(600) 및 관리 서버는 도 2에 도시된 형태일 수 있다는 것을 알 수 있다. 예를 들어, 서버 수신모듈(401), 서버 취득 모듈(402), 서버 생성 모듈(403), 및 서버 전송 모듈(404)은 도 2의 프로세서 및 메모리를 사용하여 구현될 수 있으며, 구체적으로는 프로세서를 사용하여 메모리에 저장된 프로그램 코드를 실행함으로써 구현될 수 있다.
본 발명의 실시예는 전술한 실시예에서의 웹 서버에 의해 사용되는 컴퓨터 소프트웨어 명령어를 저장하도록 구성된 컴퓨터 저장 매체를 더 제공하며, 컴퓨터 저장 매체는 전술한 방법 실시예를 실행하기 위해 설계된 프로그램을 포함한다. 웹사이트 액세스 방법은 저장된 프로그램을 실행함으로써 구현될 수 있다.
본 발명의 실시예는 전술한 프록시 서버에 의해 사용되는 컴퓨터 소프트웨어 명령어를 저장하도록 구성된 다른 컴퓨터 저장 매체를 더 제공하며, 컴퓨터 저장 매체는 전술한 방법 실시예를 실행하기 위해 설계된 프로그램을 포함한다. 웹사이트 액세스 방법은 저장된 프로그램을 실행함으로써 구현될 수 있다.
본 발명의 실시예는 전술한 클라이언트에 의해 사용되는 컴퓨터 소프트웨어 명령어를 저장하도록 구성된 다른 컴퓨터 저장 매체를 더 제공하며, 컴퓨터 저장 매체는 전술한 방법 실시예를 실행하기 위해 설계된 프로그램을 포함한다. 웹사이트 액세스 방법은 저장된 프로그램을 실행함으로써 구현될 수 있다.
본 명세서에서는 실시예를 참조하여 본 발명을 설명하였지만, 보호를 위해 청구된 본 발명을 실시하는 과정에서, 당업자는 첨부 도면, 개시된 발명의 내용, 및 아래의 청구범위를 확인함으로써, 개시된 실시예에 대한 다른 변경예를 이해 및 구현할 수 있다. 청구범위에서,
"포함하는(comprising)"이라는 용어는 다른 요소 또는 단계를 배제하지 않는다. 하나의 프로세서 또는 다른 유닛은 청구범위에 나열된 여러 기능을 수행할 수 있다. 일부 수단(measures)은 서로 다른 종속항에 기재되어 있지만, 이러한 수단을 조합하여 양호한 결과를 낳을 수 없음을 의미하는 것은 아니다.
당업자는, 본 발명의 실시예가 방법, 장치(기기) 또는 컴퓨터 프로그램 제품으로서 제공될 수 있음을 이해해야 한다. 따라서, 본 발명은 하드웨어만의 실시예, 소프트웨어만의 실시예, 또는 소프트웨어와 하드웨어의 조합의 실시예의 형태를 사용할 수 있다. 또한, 본 발명은 컴퓨터가 사용할 수 있는 프로그램 코드를 포함하는, 하나 이상의 컴퓨터가 사용할 수 있는 저장 매체(디스크 메모리, CD-ROM, 광학 메모리 등을 포함하지만 이에 한정되지는 않음)상에 구현되는 컴퓨터 프로그램 제품의 형태를 사용할 수 있다. 컴퓨터 프로그램은 적절한 매체에 저장/배포되고 다른 하드웨어와 함께 제공되거나 다른 하드웨어의 일부로 제공되거나, 예를 들어 인터넷이나 다른 유선 또는 무선 통신 시스템을 통해, 다른 형태로 배포될 수도 있다.
본 발명의 실시예에 따른 방법, 장치(기기) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하여 본 발명을 설명하였다. 이해해야 할 것은, 컴퓨터 프로그램 명령어는 흐름도 및/또는 블록도에서의 각각의 프로세스 및/또는 각각의 블록과, 흐름도 및/또는 블록도에서의 프로세스 및/또는 블록의 조합을 구현하는 데 사용될 수 있다. 이들 컴퓨터 프로그램 명령은 머신을 제작하기 위해 범용 컴퓨터, 전용 컴퓨터, 임베디드 프로세서, 또는 임의의 다른 프로그램 가능한 데이터 처리 기기에 제공될 수 있어, 컴퓨터 또는 임의의 다른 프로그램 가능한 데이터 처리 기기의 프로세서에 의해 실행되는 명령어가 흐름도에서의 하나 이상의 프로세스 및/또는 블록도에서의 하나 이상의 블록에서의 특정 기능을 구현하기 위한 장치를 생성하도록 할 수 있다.
또한, 이들 컴퓨터 프로그램 명령어는 특정한 방식으로 작동하도록 컴퓨터 또는 임의의 다른 프로그램 가능한 데이터 처리 기기에 명령할 수 있는, 컴퓨터로 판독할 수 있는 메모리에 저장될 수 있어, 컴퓨터로 판독할 수 있는 메모리에 저장된 명령어가 명령 장치를 포함하는 가공물(artifact)을 생성할 수 있도록 한다. 명령 장치는 흐름도에서의 하나 이상의 프로세스 및/또는 블록도에서의 하나 이상의 블록에서의 특정 기능을 구현한다.
이들 컴퓨터 프로그램 명령어는 또한 컴퓨터 또는 다른 프로그램 가능한 데이터 처리 기기상에 로드되어, 일련의 동작(operation) 및 단계가 컴퓨터 또는 다른 프로그램 가능한 기기상에서 수행되어, 컴퓨터로 구현된 처리를 할 수 있도록 한다. 따라서, 컴퓨터 또는 다른 프로그램 가능한 기기상에서 실행되는 명령어는 흐름도에서의 하나 이상의 프로세스 및/또는 블록도에서의 하나 이상의 블록에서의 특정한 기능을 구현하는 단계를 제공한다.
본 발명을 구체적인 특징 및 그 실시예를 참조하여 설명하였지만, 명백하게, 본 발명의 범위를 벗어나지 않으면서 다양한 수정 및 조합이 이루어질 수 있다. 따라서, 명세서 및 첨부도면은 청구범위에 의해 규정되는 본 발명의 예시적인 설명일 뿐이며, 본 발명의 범위 내의 임의의 모든 수정, 변경, 조합 또는 등가물을 포함하는 것으로 생각된다. 명백히, 당업자는 본 발명의 사상 및 범위를 벗어나지 않고 본 발명에 대해 다양한 수정 및 변형을 가할 수 있다. 본 발명은 그러한 수정 및 변형이 이하의 청구범위 및 그와 동등한 기술에 의해 규정되는 보호 범위 내에 있는 한, 그러한 수정 및 변형을 포함하는 것으로 의도된다.

Claims (31)

  1. 클라이언트로부터 액세스 요청을 수신하는 단계 - 상기 액세스 요청은 웹사이트상의 액세스될 페이지를 지시함 -;
    상기 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 초기 URL(Uniform Resource Locator)을 취득하는 단계 - 상기 초기 URL은 상기 콘텐츠 파일의 원래 경로 정보를 포함함 -;
    상기 웹사이트의 현재 버전의 버전 파라미터를 취득하는 단계 - 상기 웹사이트의 버전 각각은 상기 웹사이트 한 번의 업그레이드에 대응하고, 상기 웹사이트의 버전 각각은 유일한 버전 파라미터에 대응함 -;
    상기 콘텐츠 파일의 초기 URL 및 상기 웹사이트의 현재 버전의 버전 파라미터에 따라 상기 콘텐츠 파일의 현재 URL을 생성하는 단계 - 상기 현재 URL은 경로 정보 부분과 검색 부분을 포함하고, 상기 경로 정보 부분은 상기 콘텐츠 파일의 원래 경로 정보를 포함하고, 상기 검색 부분은 상기 웹사이트의 현재 버전의 버전 파라미터를 포함함 -; 및
    상기 클라이언트에 액세스 응답을 회신하는 단계 - 상기 액세스 응답은 상기 콘텐츠 파일의 현재 URL을 싣고 있음 -
    를 포함하고,
    상기 현재 URL은 제1 자바스크립(JavaScript, JS) 파일의 URL이고,
    상기 제1 JS 파일은 제2 JS 파일을 참조하거나, 또는 상기 제1 JS 파일은 상기 제2 JS 파일을 획득하도록 트리거하는데 사용되고,
    상기 제2 JS 파일은 상기 버전 파라미터 및 상기 제2 JS 파일의 원래 주소 정보에 의해 지시되는, 웹사이트 액세스 방법.
  2. 제1항에 있어서,
    상기 웹사이트의 현재 버전의 버전 파라미터를 취득하는 단계는 다음 방식:
    방식 1: 상기 웹사이트의 현재 버전의 버전 번호를 취득하고, 상기 버전 번호에 따라 상기 버전 파라미터를 생성하는 방식; 또는
    방식 2: 상기 웹사이트의 현재 버전의 버전 번호를 취득하고, 상기 웹사이트의 현재 버전의 버전 번호를 상기 버전 파라미터로 사용하는 방식; 또는
    방식 3: 상기 웹사이트의 식별자를 싣고 있는 버전 질의 요청(version query request)을 관리 서버에 전송하고, 상기 관리 서버에 의해 상기 웹사이트의 식별자에 따라 회신되는 상기 웹사이트의 현재 버전의 버전 파라미터를 수신하는 방식
    중 어느 하나를 포함하는, 웹사이트 액세스 방법.
  3. 제2항에 있어서,
    상기 웹사이트의 현재 버전의 버전 파라미터를 취득하는 단계는 다음 방식:
    방식 1: 상기 웹사이트의 버전 설명 파일(version description file)을 취득하고, 상기 버전 설명 파일에서 상기 웹사이트의 현재 버전의 버전 번호를 판독하는 방식; 또는
    방식 2: 관리 인터페이스를 사용하여 운영 및 유지보수 인력(operation and maintenance personnel)에 의해 기록되는 상기 웹사이트의 현재 버전의 버전 번호를 수신하는 방식; 또는
    방식 3: 업그레이드 스크립트 파일(upgrade script file)을 실행하고, 웹사이트 업그레이드의 완료 후, 상기 웹사이트의 현재 버전의 버전 번호를 구성하는 방식; 또는
    방식 4: 상기 웹사이트의 버전 업그레이드 프로세스를 모니터하고, 웹사이트 버전 업그레이드의 완료가 결정된 후, 버전 저장소(version repository)에서 상기 웹사이트의 현재 버전의 버전 번호를 판독하는 방식
    중 어느 하나를 포함하는, 웹사이트 액세스 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 초기 URL를 취득하는 단계는, 상기 액세스될 페이지에 대응하는 색인 파일을 판독하는 단계를 포함하고, 상기 색인 파일은 상기 콘텐츠 파일의 초기 URL을 포함하며;
    이에 상응하게,
    상기 색인 파일에 포함되어 있는 상기 콘텐츠 파일의 초기 URL을 상기 생성된 현재 URL로 대체하고, 갱신된 색인 파일을 상기 액세스 응답에 추가하는 단계를 더 포함하는 웹사이트 액세스 방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 액세스 응답은, 상기 클라이언트가 상기 콘텐츠 파일 및 캐시 지속기간을 캐시에 저장해야 하는지를 지시하는 데 사용되는 캐시 설정 파라미터를 포함하는, 웹사이트 액세스 방법.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 클라이언트로부터 액세스 요청을 수신하는 단계 후에, 상기 액세스될 페이지에 대응하는 색인 파일의 파일 유형을 결정하고, 상기 색인 파일의 파일 유형에 따라, 상기 색인 파일이 상기 콘텐츠 파일의 초기 URL을 포함하는지를 판정하는 단계를 더 포함하는 웹사이트 액세스 방법.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 액세스 응답의 쿠키는 상기 웹사이트의 현재 버전의 버전 파라미터를 싣고 있는, 웹사이트 액세스 방법.
  8. 웹 서버로부터의 제1 액세스 응답을 인터셉트하는 단계 - 상기 제1 액세스 응답은, 상기 웹 서버가 클라이언트로부터 액세스 요청을 수신한 후에 전송되고, 상기 액세스 요청은 웹사이트상의 액세스될 페이지를 지시하며, 상기 제1 액세스 응답은 상기 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 초기 URL을 싣고 있고, 상기 초기 URL은 상기 콘텐츠 파일의 원래 경로 정보를 포함함 -;
    상기 웹사이트의 현재 버전의 버전 파라미터를 취득하는 단계 - 상기 웹사이트의 버전 각각은 상기 웹사이트의 한 번의 업그레이드에 대응하고, 상기 웹사이트의 버전 각각은 유일한 버전 파라미터에 대응함 -;
    상기 콘텐츠 파일의 초기 URL 및 상기 웹사이트의 현재 버전의 버전 파라미터에 따라 상기 콘텐츠 파일의 현재 URL을 생성하는 단계 - 상기 현재 URL은 경로 정보 부분과 검색 부분을 포함하고, 상기 경로 정보 부분은 상기 콘텐츠 파일의 원래 경로 정보를 포함하고, 상기 검색 부분은 상기 웹사이트의 현재 버전의 버전 파라미터를 포함함 -; 및
    상기 클라이언트에 제2 액세스 응답을 회신하는 단계 - 상기 제2 액세스 응답은 상기 콘텐츠 파일의 현재 URL을 싣고 있음 -
    를 포함하고,
    상기 현재 URL은 제1 자바스크립(JavaScript, JS) 파일의 URL이고,
    상기 제1 JS 파일은 제2 JS 파일을 참조하거나, 또는 상기 제1 JS 파일은 상기 제2 JS 파일을 획득하도록 트리거하는데 사용되고,
    상기 제2 JS 파일은 상기 버전 파라미터 및 상기 제2 JS 파일의 원래 주소 정보에 의해 지시되는, 웹사이트 액세스 방법.
  9. 제8항에 있어서,
    상기 웹사이트의 현재 버전의 버전 파라미터를 취득하는 단계는 다음 방식:
    방식 1: 상기 웹사이트의 현재 버전의 버전 번호를 취득하고, 상기 버전 번호에 따라 상기 버전 파라미터를 생성하는 방식; 또는
    방식 2: 상기 웹사이트의 현재 버전의 버전 번호를 취득하고, 상기 웹사이트의 현재 버전의 버전 번호를 상기 버전 파라미터로 사용하는 방식; 또는
    방식 3: 상기 웹사이트의 식별자를 싣고 있는 버전 질의 요청(version query request)을 관리 서버에 전송하고, 상기 관리 서버에 의해 상기 웹사이트의 식별자에 따라 회신되는 상기 웹사이트의 현재 버전의 버전 파라미터를 수신하는 방식
    중 어느 하나를 포함하는, 웹사이트 액세스 방법.
  10. 제9항에 있어서,
    상기 웹사이트의 현재 버전의 버전 파라미터를 취득하는 단계는 다음 방식:
    방식 1: 상기 웹사이트의 버전 설명 파일을 취득하고, 상기 버전 설명 파일에서 상기 웹사이트의 현재 버전의 버전 번호를 판독하는 방식; 또는
    방식 2: 관리 인터페이스를 사용하여 운영 및 유지보수 인력에 의해 기록되는 상기 웹사이트의 현재 버전의 버전 번호를 수신하는 방식: 또는
    방식 3: 업그레이드 스크립트 파일을 실행하고, 웹사이트 업그레이드의 완료 후, 상기 웹사이트의 현재 버전의 버전 번호를 구성하는 방식; 또는
    방식 4: 상기 웹사이트의 버전 업그레이드 프로세스를 모니터하고, 웹사이트 버전 업그레이드의 완료가 결정된 후, 버전 저장소에서 상기 웹사이트의 현재 버전의 버전 번호를 판독하는 방식
    중 어느 하나를 포함하는, 웹사이트 액세스 방법.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 콘텐츠 파일의 초기 URL은 상기 제1 액세스 응답의 색인 파일에 포함되어 있고;
    이에 상응하게,
    상기 색인 파일에 포함되어 있는 상기 콘텐츠 파일의 초기 URL을 상기 생성된 현재 URL로 대체하고, 갱신된 색인 파일을 상기 제2 액세스 응답에 추가하는 단계를 더 포함하는 웹사이트 액세스 방법.
  12. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 제2 액세스 응답은, 상기 클라이언트가 상기 콘텐츠 파일 및 캐시 지속기간을 캐시에 저장해야 하는지를 지시하는 데 사용되는 캐시 설정 파라미터를 포함하는, 웹사이트 액세스 방법.
  13. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 웹 서버로부터의 제1 액세스 응답을 인터셉트하는 단계 후에,
    상기 액세스될 페이지에 대응하는, 상기 제1 액세스 응답에서의, 색인 파일의 파일 유형을 결정하고, 상기 색인 파일의 파일 유형에 따라, 상기 색인 파일이 상기 콘텐츠 파일의 초기 URL을 포함하는지를 판정하는 단계를 더 포함하는 웹사이트 액세스 방법.
  14. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 제2 액세스 응답의 쿠키는 상기 웹사이트의 현재 버전의 버전 파라미터를 싣고 있는, 웹사이트 액세스 방법.
  15. 웹 서버에 액세스 요청을 전송하는 단계 - 상기 액세스 요청은 웹사이트상의 액세스될 페이지를 지시함 -;
    회신된 액세스 응답(returned access response)을 수신하는 단계 - 상기 액세스 응답은 상기 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 현재 URL을 싣고 있고, 상기 현재 URL은 경로 정보 부분과 검색 부분을 포함하고, 상기 경로 정보 부분은 상기 콘텐츠 파일의 원래 경로 정보를 포함하고, 상기 검색 부분은 상기 웹사이트의 현재 버전의 버전 파라미터를 포함하고, 상기 현재 URL은 제1 자바스크립(JavaScript, JS) 파일의 URL임 -;
    상기 제1 JS 파일을 취득하기 위해 상기 웹 서버에 파일 요청 메시지를 전송하는 단계 - 상기 제1 요청 메시지는 상기 제1 JS 파일의 URL을 싣고 있음 -; 및
    상기 제1 JS 파일을 실행하여, 상기 버전 파라미터 및 제2 JS 파일의 원래 주소 정보를 사용함으로써 상기 웹 서버로부터 제2 JS 파일을 획득하는 단계를 포함하는 웹사이트 액세스 방법.
  16. 제15항에 있어서,
    상기 웹사이트가 액세스되기 전에 취득된 콘텐츠 파일의 파일명 및 버전 파라미터를 저장하는 단계를 더 포함하는 웹사이트 액세스 방법.
  17. 제16항에 있어서,
    상기 웹 서버에 파일 요청 메시지를 전송하는 단계 전에,
    상기 액세스될 페이지에 포함되어 있는 콘텐츠 파일이 캐시에 저장되어 있지 않은지를 판정하기 위해 상기 콘텐츠 파일의 저장 파일명 및 버전 파라미터를 질의하는 단계를 더 포함하는 웹사이트 액세스 방법.
  18. 제15항 내지 제17항 중 어느 한 항에 있어서,
    상기 액세스 응답의 쿠키는 상기 버전 파라미터를 싣고 있고;
    이에 상응하게, 상기 제1 JS 파일을 실행하여, 상기 웹 서버로부터 제2 JS 파일을 획득하는 단계는,
    상기 쿠키로부터 상기 버전 파라미터를 취득하고, 상기 제1 JS 파일을 실행하고, XmlHttpRequest 객체(object)를 생성하는 단계를 포함하고, 상기 XmlHttpRequest 객체에서의 목적지 URL은 상기 제2 JS 파일의 원래 주소 정보 및 상기 버전 파라미터를 포함하고, 상기 XmlHttpRequest 객체는 상기 웹 서버로부터 상기 제2 JS 파일을 취득하는 데 사용되며, 상기 제2 JS 파일은 상기 제1 JS 파일에 의해 참조되는, 웹사이트 액세스 방법.
  19. 클라이언트로부터 액세스 요청을 수신하도록 구성된 서버 수신 모듈 - 상기 액세스 요청은 웹사이트상의 액세스될 페이지를 지시함 -;
    상기 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 초기 URL 및 상기 웹사이트의 현재 버전의 버전 파라미터를 취득하도록 구성된 서버 취득 모듈 - 상기 초기 URL은 상기 콘텐츠 파일의 원래 경로 정보를 포함하고, 상기 웹사이트의 버전 각각은 상기 웹사이트의 한 번의 업그레이드에 대응하고, 상기 웹사이트의 버전 각각은 유일한 버전 파라미터에 대응함 -;
    상기 콘텐츠 파일의 초기 URL 및 상기 웹사이트의 현재 버전의 버전 파라미터에 따라 상기 콘텐츠 파일의 현재 URL을 생성하도록 구성된 서버 생성 모듈 - 상기 현재 URL은 경로 정보 부분과 검색 부분을 포함하고, 상기 경로 정보 부분은 상기 콘텐츠 파일의 원래 경로 정보를 포함하고, 상기 검색 부분은 상기 웹사이트의 현재 버전의 버전 파라미터를 포함함 -; 및
    상기 클라이언트에 액세스 응답을 회신하도록 구성된 서버 전송 모듈 - 상기 액세스 응답은 상기 콘텐츠 파일의 현재 URL을 싣고 있음 -
    을 포함하고,
    상기 현재 URL은 제1 자바스크립(JavaScript, JS) 파일의 URL이고,
    상기 제1 JS 파일은 제2 JS 파일을 참조하거나, 또는 상기 제1 JS 파일은 상기 제2 JS 파일을 획득하도록 트리거하는데 사용되고,
    상기 제2 JS 파일은 상기 버전 파라미터 및 상기 제2 JS 파일의 원래 주소 정보에 의해 지시되는, 웹 서버.
  20. 제19항에 있어서,
    상기 서버 취득 모듈은 구체적으로, 다음 방식:
    방식 1: 상기 웹사이트의 현재 버전의 버전 번호를 취득하고, 상기 버전 번호에 따라 상기 버전 파라미터를 생성하는 방식; 또는
    방식 2: 상기 웹사이트의 현재 버전의 버전 번호를 취득하고, 상기 웹사이트의 현재 버전의 버전 번호를 상기 버전 파라미터로 사용하는 방식; 또는
    방식 3: 관리 서버에 상기 웹사이트의 식별자를 싣고 있는 버전 질의 요청을 전송하고, 상기 관리 서버에 의해 상기 웹사이트의 식별자에 따라 회신되는 상기 웹사이트의 현재 버전의 버전 파라미터를 수신하는 방식
    중 어느 하나의 방식으로 상기 웹사이트의 현재 버전의 버전 파라미터를 취득하도록 구성되는, 웹 서버.
  21. 제20항에 있어서,
    상기 서버 취득 모듈은 구체적으로, 다음 방식:
    방식 1: 상기 웹사이트의 버전 설명 파일을 취득하고, 상기 버전 설명 파일에서 상기 웹사이트의 현재 버전의 버전 번호를 판독하는 방식; 또는
    방식 2: 관리 인터페이스를 사용하여 운영 및 유지보수 인력에 의해 기록되는 상기 웹사이트의 현재 버전의 버전 번호를 수신하는 방식; 또는
    방식 3: 업그레이드 스크립트 파일을 실행하고, 웹사이트 업그레이드의 완료 후, 상기 웹사이트의 현재 버전의 버전 번호를 구성하는 방식; 또는
    방식 4: 상기 웹사이트의 버전 업그레이드 프로세스를 모니터하고, 웹사이트 버전 업그레이드의 완료가 결정된 후, 버전 저장소에서 상기 웹사이트의 현재 버전의 버전 번호를 판독하는 방식
    중 어느 하나의 방식으로 상기 웹사이트의 현재 버전의 버전 파라미터를 취득하도록 구성되는, 웹 서버.
  22. 제19항 내지 제21항 중 어느 한 항에 있어서,
    상기 서버 취득 모듈은 구체적으로, 상기 액세스될 페이지에 대응하는 색인 파일에 포함되어 있는 상기 콘텐츠 파일의 초기 URL을 판독하도록 구성되고;
    이에 상응하게, 상기 서버 생성 모듈은 추가로, 상기 색인 파일에 포함되어 있는 상기 콘텐츠 파일의 초기 URL을 상기 생성된 현재 URL로 대체하고, 갱신된 색인 파일을 상기 액세스 응답에 추가하도록 구성되는, 웹 서버.
  23. 웹 서버로부터의 제1 액세스 응답을 인터셉트하도록 구성된 인터셉션 모듈(interception module) - 상기 제1 액세스 응답은, 상기 웹 서버가 클라이언트로부터 액세스 요청을 수신한 후에 전송되고, 상기 액세스 요청은 웹사이트상의 액세스될 페이지를 지시하며, 상기 제1 액세스 응답은 상기 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 초기 URL을 싣고 있고, 상기 초기 URL은 상기 콘텐츠 파일의 원래 경로 정보를 포함함 -;
    상기 웹사이트의 현재 버전의 버전 파라미터를 취득하도록 구성된 프록시 취득 모듈 - 상기 웹사이트의 버전 각각은 상기 웹사이트의 한 번의 업그레이드에 대응하고, 상기 웹사이트의 버전 각각은 유일한 버전 파라미터에 대응함 -;
    상기 콘텐츠 파일의 초기 URL 및 상기 웹사이트의 현재 버전의 버전 파라미터에 따라 상기 콘텐츠 파일의 현재 URL을 생성하도록 구성된 프록시 생성 모듈 - 상기 현재 URL은 경로 정보 부분과 검색 부분을 포함하고, 상기 경로 정보 부분은 상기 콘텐츠 파일의 원래 경로 정보를 포함하고, 상기 검색 부분은 상기 웹사이트의 현재 버전의 버전 파라미터를 포함함 -; 및
    상기 클라이언트에 제2 액세스 응답을 회신하도록 구성된 프록시 전송 모듈 - 상기 제2 액세스 응답은 상기 콘텐츠 파일의 현재 URL을 싣고 있음 -
    을 포함하고,
    상기 현재 URL은 제1 자바스크립(JavaScript, JS) 파일의 URL이고,
    상기 제1 JS 파일은 제2 JS 파일을 참조하거나, 또는 상기 제1 JS 파일은 상기 제2 JS 파일을 획득하도록 트리거하는데 사용되고,
    상기 제2 JS 파일은 상기 버전 파라미터 및 상기 제2 JS 파일의 원래 주소 정보에 의해 지시되는, 프록시 서버.
  24. 제23항에 있어서,
    상기 프록시 취득 모듈은 구체적으로, 다음 방식:
    방식 1: 상기 웹사이트의 현재 버전의 버전 번호를 취득하고, 상기 버전 번호에 따라 상기 버전 파라미터를 생성하는 방식; 또는
    방식 2: 상기 웹사이트의 현재 버전의 버전 번호를 취득하고, 상기 웹사이트의 현재 버전의 버전 번호를 상기 버전 파라미터로 사용하는 방식; 또는
    방식 3: 관리 서버에 상기 웹사이트의 식별자를 싣고 있는 버전 질의 요청을 전송하고, 상기 관리 서버에 의해 상기 웹사이트의 식별자에 따라 회신되는 상기 웹사이트의 현재 버전의 버전 파라미터를 수신하는 방식
    중 어느 하나의 방식으로 상기 웹사이트의 현재 버전의 버전 파라미터를 취득하도록 구성되는, 프록시 서버.
  25. 제24항에 있어서,
    상기 프록시 취득 모듈은 구체적으로, 다음 방식:
    방식 1: 상기 웹사이트의 버전 설명 파일을 취득하고, 상기 버전 설명 파일에서 상기 웹사이트의 현재 버전의 버전 번호를 판독하는 방식; 또는
    방식 2: 관리 인터페이스를 사용하여 운영 및 유지보수 인력에 의해 기록되는 상기 웹사이트의 현재 버전의 버전 번호를 수신하는 방식; 또는
    방식 3: 업그레이드 스크립트 파일을 실행하고, 웹사이트 업그레이드의 완료 후, 상기 웹사이트의 현재 버전의 버전 번호를 구성하는 방식; 또는
    방식 4: 상기 웹사이트의 버전 업그레이드 프로세스를 모니터하고, 웹사이트 버전 업그레이드의 완료가 결정된 후, 버전 저장소에서 상기 웹사이트의 현재 버전의 버전 번호를 판독하는 방식
    중 어느 하나의 방식으로 상기 웹사이트의 현재 버전의 버전 파라미터를 취득하도록 구성되는, 프록시 서버.
  26. 제23항 내지 제25항 중 어느 한 항에 있어서,
    상기 콘텐츠 파일의 초기 URL은 상기 제1 액세스 응답의 색인 파일에 포함되어 있고;
    이에 상응하게, 상기 프록시 생성 모듈은 추가로, 상기 색인 파일에 포함되어 있는 상기 콘텐츠 파일의 초기 URL을 상기 생성된 현재 URL로 대체하고, 상기 제2 액세스 응답에 갱신된 색인 파일을 추가하도록 구성되는, 프록시 서버.
  27. 웹 서버에 액세스 요청을 전송하도록 구성된 클라이언트 전송 모듈 - 상기 액세스 요청은 웹사이트상의 액세스될 페이지를 지시함 -;
    회신된 액세스 응답을 수신하도록 구성된 클라이언트 수신 모듈 - 상기 액세스 응답은 상기 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 현재 URL을 싣고 있고, 상기 현재 URL은 경로 정보 부분과 검색 부분을 포함하고, 상기 경로 정보 부분은 상기 콘텐츠 파일의 원래 경로 정보를 포함하고, 상기 검색 부분은 상기 웹사이트의 현재 버전의 버전 파라미터를 포함하고, 상기 현재 URL은 제1 자바스크립(JavaScript, JS) 파일의 URL임 -; 및
    상기 제1 JS 파일을 실행하여, 상기 버전 파라미터 및 제2 JS 파일의 원래 주소 정보를 사용함으로써 상기 웹 서버로부터 제2 JS 파일을 획득하도록 구성된 엔진
    을 포함하고,
    상기 클라이언트 전송 모듈은 추가로, 상기 제1 JS 파일을 취득하기 위해 상기 웹 서버에 제1 요청 메시지를 전송하도록 구성되며, 상기 제1 요청 메시지는 상기 제1 JS 파일의 URL을 싣고 있는,
    클라이언트.
  28. 제27항에 있어서,
    상기 웹사이트가 액세스되기 전에 취득된 콘텐츠 파일의 파일명 및 버전 파라미터를 저장하도록 구성된 저장 유닛을 더 포함하는 클라이언트.
  29. 제28항에 있어서,
    상기 콘텐츠 파일의 버전 파라미터 및 저장 파일명을 질의하여, 상기 액세스될 페이지에 포함되어 있는 콘텐츠 파일이 캐시에 저장되어 있는지를 판정하도록 구성된 처리 유닛을 더 포함하고, 저장되어 있지 않으면, 상기 클라이언트 전송 모듈이 상기 파일 요청 메시지를 상기 웹 서버에 전송하는, 클라이언트.
  30. 제27항 내지 제29항 중 어느 한 항에 있어서,
    상기 액세스 응답의 쿠키는 상기 버전 파라미터를 싣고 있고;
    상기 엔진은,
    상기 쿠키로부터 상기 버전 파라미터를 취득하고, 상기 제1 JS 파일을 실행하여, XmlHttpRequest 객체를 생성하도록 구성되고, 상기 XmlHttpRequest 객체에서의 목적지 URL은 상기 버전 파라미터 및 상기 제2 JS 파일의 원래 주소 정보를 포함하고, 상기 XmlHttpRequest 객체는 상기 웹 서버로부터 상기 제2 JS 파일을 취득하는 데 사용되며, 상기 제2 JS 파일은 상기 제1 JS 파일에 의해 참조되는, 클라이언트.
  31. 웹 서버와 프록시 서버를 포함하는 웹사이트 시스템으로서,
    상기 웹 서버는, 클라이언트로부터 액세스 요청을 수신하고 - 상기 액세스 요청은 웹사이트상의 액세스될 페이지를 지시함 -, 상기 클라이언트에 제1 액세스 응답을 회신하도록 구성되고 - 상기 제1 액세스 응답은 상기 액세스될 페이지에 포함되어 있는 콘텐츠 파일의 초기 URL을 싣고 있고, 상기 초기 URL은 상기 콘텐츠 파일의 원래 경로 정보를 포함함 -;
    상기 프록시 서버는, 상기 제1 액세스 응답을 인터셉트하고, 상기 웹사이트의 현재 버전의 버전 파라미터를 취득하도록 구성되며, 상기 웹사이트의 버전 각각은 상기 웹사이트의 한 번의 업그레이드에 대응하고, 상기 웹사이트의 버전 각각은 유일한 버전 파라미터에 대응하며;
    상기 프록시 서버는 추가로, 상기 콘텐츠 파일의 초기 URL 및 상기 웹사이트의 현재 버전의 버전 파라미터에 따라 상기 콘텐츠 파일의 현재 URL을 생성하고, 상기 클라이언트에 제2 액세스 응답을 회신하도록 구성되며, 상기 제2 액세스 응답은 상기 콘텐츠 파일의 현재 URL을 싣고 있고, 상기 현재 URL은 경로 정보 부분과 검색 부분을 포함하고, 상기 경로 정보 부분은 상기 콘텐츠 파일의 원래 경로 정보를 포함하고, 상기 검색 부분은 상기 웹사이트의 상기 현재 버전의 버전 파라미터를 포함하고,
    상기 현재 URL은 제1 자바스크립(JavaScript, JS) 파일의 URL이고,
    상기 제1 JS 파일은 제2 JS 파일을 참조하거나, 또는 상기 제1 JS 파일은 상기 제2 JS 파일을 획득하도록 트리거하는데 사용되고,
    상기 제2 JS 파일은 상기 버전 파라미터 및 상기 제2 JS 파일의 원래 주소 정보에 의해 지시되는,
    웹사이트 시스템.
KR1020197011266A 2015-12-28 2015-12-28 웹사이트 액세스 방법, 장치, 및 웹사이트 시스템 KR20190044134A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/099215 WO2017113060A1 (zh) 2015-12-28 2015-12-28 web网站的访问方法、装置及Web网站系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020177003102A Division KR20180090180A (ko) 2015-12-28 2015-12-28 웹사이트 액세스 방법, 장치, 및 웹사이트 시스템

Publications (1)

Publication Number Publication Date
KR20190044134A true KR20190044134A (ko) 2019-04-29

Family

ID=58238800

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177003102A KR20180090180A (ko) 2015-12-28 2015-12-28 웹사이트 액세스 방법, 장치, 및 웹사이트 시스템
KR1020197011266A KR20190044134A (ko) 2015-12-28 2015-12-28 웹사이트 액세스 방법, 장치, 및 웹사이트 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020177003102A KR20180090180A (ko) 2015-12-28 2015-12-28 웹사이트 액세스 방법, 장치, 및 웹사이트 시스템

Country Status (12)

Country Link
US (1) US10412176B2 (ko)
EP (1) EP3229148B1 (ko)
JP (1) JP6410280B2 (ko)
KR (2) KR20180090180A (ko)
CN (1) CN106489145B (ko)
AU (1) AU2015401229B2 (ko)
BR (1) BR112017000863B1 (ko)
CA (1) CA2954294C (ko)
RU (1) RU2673403C2 (ko)
SG (1) SG11201700226SA (ko)
WO (1) WO2017113060A1 (ko)
ZA (1) ZA201700343B (ko)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108989362A (zh) * 2017-05-31 2018-12-11 北京京东尚科信息技术有限公司 一种静态资源的处理方法和装置
US10970354B2 (en) * 2017-07-17 2021-04-06 Songtradr, Inc. Method for processing code and increasing website and client interaction speed
JP7146921B2 (ja) * 2017-12-19 2022-10-04 ヴィーヴァ システムズ インコーポレイテッド 電子通信を制御するためのシステム及び方法
CN108280174A (zh) * 2018-01-22 2018-07-13 网宿科技股份有限公司 前端文件构建方法和服务器、页面访问方法和终端
CN108322458B (zh) * 2018-01-30 2020-05-19 深圳壹账通智能科技有限公司 Web应用入侵检测方法、系统、计算机设备和存储介质
US11089024B2 (en) * 2018-03-09 2021-08-10 Microsoft Technology Licensing, Llc System and method for restricting access to web resources
CN110445744B (zh) * 2018-05-02 2022-06-28 阿里巴巴集团控股有限公司 一种数据处理方法及装置
CN108920691B (zh) * 2018-07-13 2023-04-18 平安科技(深圳)有限公司 前端静态资源的管理方法、装置、计算机设备及存储介质
CN109063140A (zh) * 2018-08-03 2018-12-21 福州麦辽自动化设备有限公司 一种数据查询方法、中转服务器及计算机可读存储介质
CN108965464B (zh) * 2018-08-09 2021-10-29 深圳乐信软件技术有限公司 前端文件一致性方法、装置、服务器和存储介质
CN109088764B (zh) * 2018-08-15 2022-04-22 郑州悉知信息科技股份有限公司 访问请求处理方法及相关设备
CN111881386B (zh) * 2018-08-31 2024-03-12 创新先进技术有限公司 一种基于扫码操作的页面访问方法、装置及系统
US10664266B2 (en) * 2018-09-04 2020-05-26 Salesforce.Com, Inc. Maintaining client version affinity during a server cluster upgrade
CN109445813A (zh) * 2018-09-18 2019-03-08 平安科技(深圳)有限公司 一种文件引用方法及装置
CN109150904A (zh) * 2018-09-25 2019-01-04 深圳市佰仟金融服务有限公司 接口服务调用方法及终端设备
CN109471858A (zh) * 2018-09-28 2019-03-15 沈文策 地址转换方法、文章访问方法、装置及电子设备
CN111061977A (zh) * 2018-09-28 2020-04-24 北京国双科技有限公司 网站的更新方法、装置及系统
CN111367596B (zh) * 2018-12-25 2023-06-23 阿里巴巴集团控股有限公司 一种实现业务数据处理的方法及装置和客户端
CN111367650B (zh) * 2018-12-26 2023-11-21 浙江大学 一种输入输出流的处理方法、装置及系统
US11151214B2 (en) * 2019-01-23 2021-10-19 Vmware, Inc. Dynamically determining a server for enrollment with management system
CN109753622B (zh) * 2019-01-31 2021-06-18 天津字节跳动科技有限公司 静态资源管理方法、装置、存储介质及电子设备
CN111756674B (zh) 2019-03-28 2021-07-27 上海哔哩哔哩科技有限公司 网络通信方法、系统、设备及计算机可读存储介质
CN110012096B (zh) * 2019-04-03 2021-12-24 中国工商银行股份有限公司 移动客户端服务更新管理方法、装置及系统
CN110221853A (zh) * 2019-05-15 2019-09-10 无线生活(杭州)信息科技有限公司 基于Nginx更新页面脚本的方法及Nginx服务器
CN110399341B (zh) * 2019-07-06 2022-12-06 深圳市山水原创动漫文化有限公司 一种动画参考文件存储和调用的方法及其系统
CN110554963B (zh) * 2019-08-26 2023-07-25 北京城市网邻信息技术有限公司 一种应用回滚方法、装置及存储介质
CN110636121B (zh) * 2019-09-09 2022-07-05 苏宁云计算有限公司 一种数据获取方法及系统
US10929200B1 (en) 2019-09-16 2021-02-23 International Business Machines Corporation Live runtime infrastructure orchestration
CN112541146A (zh) * 2019-09-20 2021-03-23 北京国双科技有限公司 网络访问方法、系统、服务器、电子设备及存储介质
CN110795645A (zh) * 2019-09-25 2020-02-14 东软集团股份有限公司 一种网站访问方法、装置及设备
CN110674435A (zh) * 2019-09-27 2020-01-10 网易(杭州)网络有限公司 页面访问方法、服务器、终端、电子设备及可读存储介质
CN110737879A (zh) * 2019-10-23 2020-01-31 北京达佳互联信息技术有限公司 网站版权时间的管理方法、装置、存储介质及设备
CN112783548B (zh) * 2019-11-11 2024-02-20 阿里巴巴集团控股有限公司 网络系统的访问方法及装置
CN111177615B (zh) * 2019-12-05 2023-05-30 商客通尚景科技(上海)股份有限公司 网站资源的访问方法及设备
CN111159614B (zh) * 2019-12-30 2021-02-02 北京金堤科技有限公司 网页资源获取方法以及装置
CN113411364B (zh) * 2020-03-16 2022-10-11 北京金山云网络技术有限公司 资源获取方法、装置及服务器
CN111931090A (zh) * 2020-06-29 2020-11-13 厦门汉印电子技术有限公司 网页显示方法、装置、设备以及可读存储介质
CN112069435A (zh) * 2020-07-27 2020-12-11 北京思特奇信息技术股份有限公司 一种通过脚本进行nginx配置文件切换的方法及系统
CN112015483B (zh) * 2020-08-07 2021-12-03 北京浪潮数据技术有限公司 Post请求参数自动化处理方法、装置及可读存储介质
CN114301890B (zh) * 2020-09-22 2023-09-05 中国移动通信集团安徽有限公司 Web访问请求的处理方法及装置
CN112346761B (zh) * 2020-10-27 2024-05-17 长沙市到家悠享网络科技有限公司 前端资源上线方法、设备、系统及存储介质
CN112256308A (zh) * 2020-11-12 2021-01-22 腾讯科技(深圳)有限公司 一种目标应用更新方法及装置
CN112817740A (zh) * 2020-12-28 2021-05-18 江苏赛西科技发展有限公司 一种面向工业app领域的云平台架构
CN112835578A (zh) * 2021-01-28 2021-05-25 观脉科技(北京)有限公司 一种bundle文件生成方法和存储介质
US11343348B1 (en) 2021-04-12 2022-05-24 Akamai Technologies, Inc. Real-time message delivery and update service in a proxy server network
CN113392349A (zh) * 2021-06-11 2021-09-14 北京沃东天骏信息技术有限公司 一种页面加载方法、装置、设备和计算机可读存储介质
CN113626063B (zh) * 2021-07-24 2024-10-29 济南浪潮数据技术有限公司 一种访问静态Demo的方法、装置、设备及可读介质
CN113507529B (zh) * 2021-07-26 2022-12-06 上海中通吉网络技术有限公司 基于Web应用实现文件下载的方法
CN113486267B (zh) * 2021-07-27 2024-01-23 平安国际智慧城市科技股份有限公司 应用入口页面的解析方法、装置、设备及存储介质
CN114924740B (zh) * 2022-04-26 2024-07-30 江苏康众汽配有限公司 一种前端单页应用中资源失效主动检测方法
CN115442353B (zh) * 2022-11-07 2023-06-16 成都睿乐达机器人科技有限公司 一种基于物联网设备的应用升级方法及装置
CN116546093B (zh) * 2023-07-04 2023-10-20 云账户技术(天津)有限公司 一种基于静态资源管理平台的资源获取方法及装置
CN117270957B (zh) * 2023-11-21 2024-03-08 北京名道恒通信息技术有限公司 一种接口版本控制方法、请求端及服务端

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860071A (en) * 1997-02-07 1999-01-12 At&T Corp Querying and navigating changes in web repositories
EP1006462A3 (en) * 1998-12-01 2005-03-30 Lucent Technologies Inc. A method and apparatus for persistent storage of web resources
US7685296B2 (en) * 2003-09-25 2010-03-23 Microsoft Corporation Systems and methods for client-based web crawling
US7886032B1 (en) * 2003-12-23 2011-02-08 Google Inc. Content retrieval from sites that use session identifiers
US7689601B2 (en) * 2004-05-06 2010-03-30 Oracle International Corporation Achieving web documents using unique document locators
US7689663B2 (en) 2005-03-24 2010-03-30 Hewlett-Packard Development Company, L.P. Embedded web-based management method
US8321533B2 (en) * 2009-08-03 2012-11-27 Limelight Networks, Inc. Systems and methods thereto for acceleration of web pages access using next page optimization, caching and pre-fetching techniques
CN102109989A (zh) * 2009-12-29 2011-06-29 阿里巴巴集团控股有限公司 一种控制浏览器缓存的方法、装置和系统
US8655943B2 (en) * 2010-05-31 2014-02-18 Oracle International Corporation Web server providing access to documents having multiple versions
JP5656563B2 (ja) * 2010-11-02 2015-01-21 キヤノン株式会社 文書管理システム、文書管理システムの制御方法、プログラム
EP2475144A1 (en) * 2011-01-05 2012-07-11 Gemalto SA Method for communicating between a server and a client and corresponding client, server and system
CN102882974B (zh) * 2012-10-15 2015-04-29 焦点科技股份有限公司 一种通过网站识别版本号节省网站访问资源的方法
US20140173417A1 (en) * 2012-12-18 2014-06-19 Xiaopeng He Method and Apparatus for Archiving and Displaying historical Web Contents
JP5395967B1 (ja) * 2013-02-19 2014-01-22 株式会社 ディー・エヌ・エー データ処理システム、情報端末、データ処理方法およびデータ処理プログラム
US9785721B2 (en) * 2014-12-30 2017-10-10 Yahoo Holdings, Inc. System and method for programmatically creating resource locators
US10984189B2 (en) * 2015-12-30 2021-04-20 Verizon Media Inc. Search engine content switch

Also Published As

Publication number Publication date
SG11201700226SA (en) 2017-08-30
EP3229148A1 (en) 2017-10-11
BR112017000863A2 (pt) 2017-12-05
BR112017000863B1 (pt) 2023-02-14
ZA201700343B (en) 2019-07-31
AU2015401229B2 (en) 2019-01-17
BR112017000863A8 (pt) 2022-08-23
CN106489145B (zh) 2019-07-26
EP3229148B1 (en) 2020-07-29
EP3229148A4 (en) 2018-01-03
JP2018506756A (ja) 2018-03-08
RU2673403C2 (ru) 2018-11-26
JP6410280B2 (ja) 2018-10-24
KR20180090180A (ko) 2018-08-10
US20180041590A1 (en) 2018-02-08
CA2954294C (en) 2022-06-21
AU2015401229A1 (en) 2017-07-13
US10412176B2 (en) 2019-09-10
RU2017106890A3 (ko) 2018-09-04
WO2017113060A1 (zh) 2017-07-06
RU2017106890A (ru) 2018-09-04
CN106489145A (zh) 2017-03-08
CA2954294A1 (en) 2017-06-28

Similar Documents

Publication Publication Date Title
US10412176B2 (en) Website access method, apparatus, and website system
US10713034B2 (en) Updating web resources
US10694353B2 (en) Updating web resources
CN109976667B (zh) 一种镜像管理方法、装置及系统
CA2782674C (en) System and method for providing virtual web access
US9088462B2 (en) Common web accessible data store for client side page processing
WO2015180601A1 (zh) WebApp启动运行、生成镜像文件的方法和装置
WO2015069912A1 (en) Dynamic application version selection
US10574724B2 (en) Automatic discovery of management nodes and generation of CLI using HA module
US10402464B2 (en) Methods and apparatuses for opening a webpage, invoking a client, and creating a light application
JP2019530089A (ja) ウェブページとネイティブアプリケーションの間の通信を実現する方法及び装置並びに電子装置
CN109428872B (zh) 数据传输方法、设备、服务器及启动方法、系统
US20160352858A1 (en) Plug-in cache
CN113326418A (zh) 用于确定网页信息源及网页质量的方法和装置
WO2022135410A1 (zh) 加载源文件的方法及装置
US10067846B2 (en) Processing file modifications in a networked storage system
KR20120118866A (ko) 웹기술을 이용하여 저성능 원격지 장치를 제어하기 위한 인터페이스 구축 시스템 및 그 방법

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application