WO2015052354A1 - Procedimiento y sistema para definir el orden de obtención de recursos web por un navegador web - Google Patents

Procedimiento y sistema para definir el orden de obtención de recursos web por un navegador web Download PDF

Info

Publication number
WO2015052354A1
WO2015052354A1 PCT/ES2013/070691 ES2013070691W WO2015052354A1 WO 2015052354 A1 WO2015052354 A1 WO 2015052354A1 ES 2013070691 W ES2013070691 W ES 2013070691W WO 2015052354 A1 WO2015052354 A1 WO 2015052354A1
Authority
WO
WIPO (PCT)
Prior art keywords
http request
http
web
priority level
web browser
Prior art date
Application number
PCT/ES2013/070691
Other languages
English (en)
French (fr)
Inventor
Xiaoyuan Yang
David Guijarro Guillen
Original Assignee
Telefonica Digital España, S.L.U.
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 Telefonica Digital España, S.L.U. filed Critical Telefonica Digital España, S.L.U.
Priority to EP13895250.2A priority Critical patent/EP3057274A4/en
Priority to PCT/ES2013/070691 priority patent/WO2015052354A1/es
Priority to BR112016007657A priority patent/BR112016007657A2/pt
Priority to US15/027,635 priority patent/US20160261714A1/en
Publication of WO2015052354A1 publication Critical patent/WO2015052354A1/es

Links

Classifications

    • 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
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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
    • 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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata

Definitions

  • the present invention relates, in general, to web browsing on the Internet and, more specifically, to a procedure for assigning load priorities to the elements of a web page by rearranging, by means of controlled redirects, the normal order of obtaining resources web, optimizing and improving the browsing experience, without blocking any connection, ntecedente
  • Each Internet user accesses web pages through a web browser, which allows users to access content hosted on servers.
  • a web browser When a user requests an internet web page, an HTTP request is sent by the browser to an HTTP server, which processes that request.
  • the HTTP server returns an HTTP response to the browser, which evaluates the response and begins generating the requested content. Additional web resources, included in the requested web page, imply additional requests to the server, until, eventually, the browser is able to represent the entire web page.
  • a web cache offers temporary storage of web documents, such as pages and HTML images. Copies of the documents that go through the web cache are kept and, therefore, new requests can be attended from the cache, instead of the source server.
  • the Web cache memories are used in various systems such as search engines, web servers, web applications or web browsers.
  • the content from a web page arrives in an order that might not be correct for the device that represents it; A small mobile screen does not represent anything until the end, because it has taken a lot of time to download the content, which cannot be seen because it is outside the visible area.
  • Ads specifically from third-party content publishers, take longer to load and block more relevant content (from the point of view of the publisher - and perhaps also the user).
  • Blocking content may involve some inconvenience. For example, ad biocheckers could ruin a web page by reducing their income, but, on the other hand, blocking content is significant when, for example, the contents cannot be represented on the requesting device.
  • Another class of techniques slows down the server side, by delaying the response of lower priority elements. As already mentioned, these have the problem of keeping browser connections blocked and avoiding parallel downloads, negatively affecting the overall performance.
  • the present invention solves the aforementioned problems by presenting a transparent and non-invasive procedure to define the order of obtaining web resources by a web browser.
  • the procedure comprises the steps of: a) receiving an HTTP request in an intermediate node, included in a first uniform resource locator, for a web resource sent by a web browser:
  • the order of obtaining web resources is controlled according to the natural requirement of current web browsers, which request web resources using a queue, where redirects are inserted at the end of the queue. This condition allows the insertion of redirects in a controlled manner to reorder the normal order of obtaining.
  • a request is received at the intermediate node
  • the invention may comprise sending the HTTP request to a source server or to a web cache, to obtain the web resource.
  • the intermediate node can be configured to imply delays for a set of domains.
  • the priority level can be implemented by inserting a string in the HTTP request that encodes a delay with an original host, providing a locator resource uniform that uses an HTTP response code 303,
  • the maximum value of the priority level may correspond, according to one embodiment, to a minimum delay, that is, a null delay.
  • a null priority corresponds to an infinite delay, which causes an HTTP request to be rejected in the intermediate node.
  • Another aspect of the invention relates to a system for defining the order of obtaining web resources by a web browser, where the web browser sends an HTTP request to an HTTP server;
  • the system is characterized by an intermediate node, configured to redirect ⁇ HTTP request to the web browser before letting ⁇ HTTP request ⁇ legue to the HTTP server, the intermediate node being configured to: receive an HTTP request, included in a first locator resource uniform, for a web resource, sent by the web browser; - assign a priority level to the HTTP request;
  • the inventive system may comprise, according to some embodiments, the intermediate node, additionally configured to receive an HTTP request for a web resource in the intermediate node, with a priority level sent by the web browser; if the priority level is lower than a previously defined maximum value, modify the HTTP request by increasing the priority level; encode the modified HTTP request in a third uniform resource locator; and send the third uniform resource locator as a second HTTP redirection response to the web browser.
  • the intermediate node may be additionally configured to implement delays for a set of domains.
  • the intermediate node can insert a string in the HTTP request, which encodes a delay according to the priority level and, with an original host, provide a uniform resource locator using an HTTP response code 303.
  • the intermediate node is an http proxy-cache server in some embodiments of the invention.
  • a final aspect of the invention relates to a computer program product comprising computer program code adapted to perform the method of the invention, when said program code is executed on a computer, a digital signal processor, a formation of programmable doors in the field, an application-specific integrated circuit, a micro-processor, a micro-controller or any other form of programmable hardware.
  • the invention applies to all Internet web pages, without restricting the type of content they provide.
  • it is transparent because there is no need for the provider to design the website in any special way, and the content is not transformed at all.
  • Such transparency also provides a direct advantage over alternative solutions of the state of the art, because no agreement with owners or content providers is required.
  • the inactivity of the connections is minimized by the present invention, in comparison with any standard technique based on the slowdown, while the actual downloading or obtaining of the content is rearranged.
  • the proposed invention is dynamic: the order of the delay levels can be changed over time, either using an automatic system or by human intervention.
  • Figure 1 shows a block diagram of the interaction between a web browser and a proxy, according to an embodiment of the invention.
  • the invention describes a process for assigning, in general terms, loading priorities or obtaining all the elements of a web page.
  • the prioritization is achieved by means of a system consisting of an http proxy, flexible enough to be configured to implement arbitrary delays in access to a set of domains. But not just any delay procedure would work; for example, a delay in the proxy response would block all remaining content and waste a browser connection.
  • An embodiment, suitable for browsers, of how to use a delay method of the proposed invention is presented below.
  • the present invention is based on an intermediate node which, according to one embodiment, is implemented as an http proxy-web cache server, flexible as to intercept all connections or requests sent by a web browser to a source server.
  • This http proxy server-web cache is capable of dividing incoming requests into sets, only according to the top of a "host" header ( ⁇ bttp header ⁇ beloved 'host'), These sets correspond to the levels Delay required (a set for no delay, a set for a first delay level, a set for two delay levels, and so on).
  • a path in English path is a way of referencing a computer file, directory or web resource.
  • the path indicates the exact location of the file, directory or web resource by means of a specific character string, which is usually made up of the names of the directories that make up the path to the searched resource. These names will be separated by a delimiter character that is usually " ⁇ " on MS-DOS / Windows (Microsoft) systems or "i" on UNIX / Linux systems.
  • the actions required by the present embodiments of the invention consist of a quick selection from the value of the route; respond with an http redirection (303 http response codes) with a dynamic ocaüzaissus header value that depends on the route of the incoming request; let a request pass and sent, with a modification of the route to the origin specified by the header value of the "host".
  • a delay level is set according to a priority level assigned using the configuration. This level of delay is encoded in a new uniform resource locator (url) that is sent as an http redirection response to the web browser.
  • url uniform resource locator
  • the original route is also encoded within the new url. From esié punió, all requests referred to the original will arrive with that coding that contains both the level of delay and the original route.
  • the web proxy http-cache server When the web proxy http-cache server receives an encrypted request (it already includes an http request plus an encrypted priority level as a delay level), it decodes both the route and the delay level. If the level is zero, the request is sent to its origin server, or its response is taken from the cache storage, and answered in a standard way. Otherwise, the priority level is increased (resulting in a decreased delay level), a new redirection is coded, with the original route and the new delay level, and sent to the browser.
  • the procedure proposed by an embodiment of the present invention to construct redirects consists in inserting, at the beginning of the request route, a chain that encodes the delay level.
  • the basic interaction between the browser and the proxy of said embodiment is schematically explained in Figure 1, where a transparent coding procedure is shown.
  • the proxy parses that request and looks for a redirection (4). If the request comes to the proxy for the first time, then a delay level is assigned according to the priority set during configuration.
  • An HTTP redirection response is constructed (6) and sent (7) back to the web browser, where the response can be processed (8) directly to capture the requested web resource, or it can be queued (9) as the rest of the redirects.
  • a delay redirection (10) of the next level is constructed. If now the delay level is not the last level (1 1), the next stage is already sending the response (7) to the web browser, as explained above. But if the level was effectively the last level, which is a null delay for this realization, but that can be implemented to be any other value, the next step is to send an HTTP request to the source server, or extract its response from the web cache (12) and, finally, once the response is ready (13) (either from an origin or from the cache), it is sent to the browser (7),
  • Request redirection avoids manipulating anything other than the uri of the redirection destination, which contains the host and the route of the new request. If the hosts were also manipulated, they would cause collisions with some other hosts on the Internet, so manipulating only the route is the most appropriate non-invasive way.
  • the technique could consist of any manipulation of the route that, in some way, can be reversed very quickly.
  • a simple and convenient way is to insert a prefix. For example, for a request with a requested route / route. html, the web browser is redirected to /retardo-nivei-3/route-solicited.html, using the 303 response code Http, and providing the url specified with the original host.
  • the proxy acts as follows: for a zero delay, the request is searched in the cache; if there is a coincidence, then it is served; otherwise, it is diverted to the source server;

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

La presente invención se refiere a un procedimiento para definir el orden de obtención de recursos web por un navegador web. El procedimiento comprende: recibir en un nodo intermedio una petición HTTP, incluida en un primer localizador uniforme de recursos, para un recurso web, enviada por un navegador web; asignar un nivel de prioridad a la petición HTTP, por parte del nodo intermedio; codificar el nivel de prioridad y la petición HTTP en un segundo localizador uniforme de recursos; y enviar el segundo localizador uniforme de recursos como una respuesta de redirección HTTP al navegador web, de modo que sea definido el orden de captura. La presente invención también se refiere a un sistema para definir el orden de captura por un navegador web, caracterizado por un nodo intermedio configurado para redirigir la petición HTTP al navegador web antes de dejar que la petición HTTP llegue al servidor HTTP, estando el nodo intermedio configurado para realizar las etapas previas.

Description

PROCEDIMIENTO Y SISTEMA PARA DEFINIR EL ORDEN DE OBTENCIÓN DE RECURSOS WEB POR UN NAVEGADOR WEB
La presente invención se refiere, en general, a la navegación web en Internet y, más específicamente, a un procedimiento para asignar prioridades de carga a los elementos de una página web reordenando, por medio de redirecciones controladas, el orden normal de obtención de recursos web, optimizando y mejorando la experiencia de navegación, sin bloquear ninguna conexión, ntecedente
La navegación web se está convirtiendo en una actividad diaria para una mayoría de la población mundial. La velocidad en la experiencia de la navegación es, claramente, un objetivo que beneficia tanto a ios usuarios como a los editores de contenidos,
Cada usuario de Internet accede a páginas web a través de un navegador web, que permite a ios usuarios acceder a contenidos alojados en servidores. Cuando un usuario solicita una página web de internet, una petición HTTP es enviada por el navegador a un servidor HTTP, que procesa dicha petición. El servidor HTTP devuelve una respuesta HTTP al navegador, que evalúa la respuesta y comienza a generar el contenido solicitado. Recursos web adicionales, incluidos en la página web solicitada, implican peticiones adicionales al servidor, hasta que, eventualmente, el navegador sea capaz de representar la página web completa.
A un servidor pueden acceder múltiples usuarios al mismo tiempo, pero un problema es que no tiene un mecanismo de protección ante condiciones de carga excesiva. A fin de ahorrar tiempo y recursos, se usa a menudo una memoria caché web. Una memoria caché web ofrece un almacenamiento temporal de documentos web, tales como páginas e imágenes HTML. Se mantienen copias de los documentos que pasan por la memoria caché web y, por ello, las nuevas peticiones pueden ser atendidas desde la memoria caché, en lugar del servidor de origen. Las memorias caché web son usadas en varios sistemas como motores de búsqueda, servidores web, aplicaciones web o navegadores web.
Sin embargo y, en particular, en un entorno móvil, hoy en día la realidad de la navegación web aún está lejos de ser óptima. Hay varias cuestiones a tener en consideración.
El contenido desde una página web llega en un orden que podría no ser el correcto para el dispositivo que lo representa; una pequeña pantalla móvil no representa nada hasta el final, porque le ha llevado un montón de tiempo descargar el contenido, que no puede ser visto porque está fuera del área visible.
Los anuncios, específicamente de terceros editores de contenidos, llevan más tiempo para cargarse y bloquean contenido más relevante (desde el punto de vista del editor - y tal vez también del usuario).
El bloqueo de contenido puede implicar algunos inconvenientes. Por ejemplo, ios bioqueadores de anuncios podrían arruinar una página web mediante la reducción de sus ingresos, pero, por otra parte, el bloqueo de contenidos es significativo cuando, por ejemplo, los contenidos no pueden ser representados en el dispositivo solicitante.
Para resumir, un adecuado orden de carga o de obtención de los elementos de una página web, con bloqueo opcional, parece ser una solución razonable para esos problemas. El orden correcto podría depender de la misma página web, del dispositivo que tiene el usuario e incluso de la petición específica.
Hay soluciones en el estado de la técnica que reordenan la carga de elementos mediante la modificación del contenido (la petición html). Estos procedimientos requieren la manipulación del contenido y pueden caer dentro de problemas legales con respecto a la propiedad del contenido. Por lo tanto, solamente se aplican cuando hay un acuerdo entre las partes: el editor del contenido, los propietarios del contenido y los proveedores de soluciones de aceleración. Una de tales soluciones es la patente US8112471 B2, que comprende un sistema para optimizar las prestaciones de una página web, que incluye un sistema de gestión de tráfico que redirige la petición HTTP y que aplica técnicas de optimización a las peticiones HTTP redirigidas y a las respuestas HTTP. Por ejemplo, detectando contenido de "viewport" o área de visuaiización o cambiando el contenido por el de una versión móvil.
Otra clase de técnicas ralentizan el lado del servidor, mediante el retardo de la respuesta de los elementos de menor prioridad. Como ya ha sido mencionado, estas tienen el problema de mantener bloqueadas las conexiones del navegador y evitar descargas paralelas, afectando negativamente las prestaciones generales.
También hay técnicas para reordenar peticiones cuando la prioridad llega explícitamente en la petición original, y otros sistemas que tienen un número limitado de niveles, como en el documento US6742016B1 , donde se revela un sistema para gestionar peticiones entrantes en un servidor de aplicaciones. Está incluido un administrador de sesiones que asigna un nivel de prioridad a las peticiones, y también está controlado el número de peticiones simultáneas enviadas. Se almacenan menos peticiones de prioridad.
Por otra parte, hay mecanismos para la aceleración web, para móviles que consisten en el diseño de una red móvil específica. Esos, si bien son casi óptimos para proporcionar una rápida experiencia de navegación, a menudo sacrifican el contenido (la versión móvil de una página web es menos atractiva) y / o son caros de construir inicialmente y de mantener.
Por todos los motivos expuestos anteriormente, falta en el estado de la técnica un procedimiento para asignar prioridades de carga a todos ios elementos de una página web, que no esté acotado por ningún acuerdo entre las partes, sino que sea totalmente no invasor y transparente tanto para el navegador como para el editor de contenidos.
Resumen de la invención
La presente invención resuelve los problemas citados previamente presentando un procedimiento transparente y no invasor para definir el orden de obtención de recursos web por un navegador web. El procedimiento comprende las etapas de: a) recibir en un nodo intermedio una petición HTTP, incluida en un primer localizador uniforme de recursos, para un recurso web enviado por un navegador web:
b) asignar un nivel de prioridad a la petición HTTP por parte del nodo intermedio;
c) codificar el nivel de prioridad y la petición HTTP en un segundo localizador uniforme de recursos;
d) enviar el segundo localizador uniforme de recursos como una respuesta de redirección HTTP al navegador web.
De tal modo, el orden de obtención de los recursos web está controlado según el requisito natural de los navegadores web actuales, que solicitan los recursos web usando una cola, donde las redirecciones son insertadas al final de la cola. Esta condición permite que la inserción de redirecciones de manera controlada reordene el orden normal de obtención. En una realización de la invención, se recibe en el nodo intermedio una petición
HTTP para un recurso web, con un nivel de prioridad enviado por el navegador web; luego, si el nivel de prioridad es inferior a un valor máximo previamente definido, la petición HTTP es modificada aumentando el nivel de prioridad; la petición HTTP modificada es modificada y codificada en un tercer localizador uniforme de recursos; y, finalmente, el tercer localizador uniforme de recursos es enviado como una segunda respuesta de redirección HTTP al navegador web. Cuando el nivel de prioridad alcanza un valor máximo previamente definido, la invención puede comprender enviar la petición HTTP a un servidor de origen o a una memoria caché web, para obtener el recurso web.
Según una realización específica de la invención, el nodo intermedio puede ser configurado para impiementar retardos para un conjunto de dominios. Y el nivel de prioridad puede ser implementado insertando una cadena en la petición HTTP que codifique un retardo con un anfitrión original, proporcionando un localizador uniforme de recursos que usa un código 303 de respuesta HTTP,
El valor máximo del nivel de prioridad puede corresponder, según una realización, a un retardo mínimo, es decir, un retardo nulo. Por el contrario, una prioridad nula, según dicha realización, corresponde a un retardo infinito, que hace que una petición HTTP sea rechazada en el nodo intermedio.
Otro aspecto de la invención se refiere a un sistema para definir el orden de obtención de recursos web por un navegador web, donde el navegador web envía una petición HTTP a un servidor HTTP; el sistema está caracterizado por un nodo intermedio, configurado para redirigir ¡a petición HTTP al navegador web antes de dejar que ¡a petición HTTP ¡legue al servidor HTTP, estando el nodo intermedio configurado para: recibir una petición HTTP, incluida en un primer localizador uniforme de recursos, para un recurso web, enviada por el navegador web; - asignar un nivel de prioridad a la petición HTTP;
codificar el nivel de prioridad y ¡a petición HTTP en un segundo localizador uniforme de recursos;
enviar el segundo localizador uniforme de recursos como una respuesta de redirección HTTP al navegador web;
El sistema de ¡a invención puede comprender, según algunas realizaciones, el nodo intermedio, adicionalmente configurado para recibir en el nodo intermedio una petición HTTP para un recurso web, con un nivel de prioridad enviado por el navegador web; si el nivel de prioridad es inferior a un valor máximo previamente definido, modificar la petición HTTP aumentando el nivel de prioridad; codificar la petición HTTP modificada en un tercer localizador uniforme de recursos; y enviar el tercer localizador uniforme de recursos como una segunda respuesta de redirección HTTP ai navegador web.
Optativamente, el nodo intermedio puede estar adicionalmente configurado para implementar retardos para un conjunto de dominios. Y, según algunas realizaciones de la invención, el nodo intermedio puede insertar una cadena en la petición HTTP, que codifica un retardo según el nivel de prioridad y, con un anfitrión original, proporcionar un localizador uniforme de recursos usando un código 303 de respuesta HTTP. El nodo intermedio es un servidor http proxy-caché en algunas realizaciones de la invención.
Un último aspecto de la invención se refiere a un producto de programa de ordenador que comprende código de programa de ordenador adaptado para realizar el procedimiento de la invención, cuando dicho código de programa es ejecutado en un ordenador, un procesador de señales digitales, una formación de puertas programable en el terreno, un circuito integrado específico de una aplicación, un micro-procesador, un micro-controlador o cualquier otra forma de hardware programable.
La invención se aplica a todas las páginas web de Internet, sin restringir el tipo de contenido que proporcionan. Además, es transparente porque no hay ninguna necesidad de que el proveedor diseñe la página web en modo especial alguno, y el contenido no es transformado en absoluto. Dicha transparencia también brinda una ventaja directa con respecto a soluciones alternativas del estado del a técnica, porque no se requiere ningún acuerdo con propietarios ni proveedores de contenidos.
También la inactividad de las conexiones es minimizada por la presente invención, en comparación con cualquier técnica estándar basada en la ralentización, mientras se reordena la descarga efectiva u obtención del contenido. Y una ventaja adicional es que la invención propuesta es dinámica: el orden de los niveles de retardo puede ser cambiado a lo largo del tiempo, ya sea usando un sistema automático o bien por intervención humana.
Descripción de los dibujos
Para completar la descripción que se está haciendo, y con el objeto de ayudar para una mejor comprensión de las características de la invención, de acuerdo a un ejemplo preferente de una realización práctica de la misma, que acompaña a dicha descripción como una parte integral de la misma, hay un conjunto de dibujos en los cuales, a modo de ilustración y no de manera restrictiva, ha sido representado lo siguiente:
Figura 1.- muestra un diagrama de bloques de la interacción entre un navegador web y un proxy, según una realización de la invención.
Descripción detallada de fa invención
La invención describe un proceso para asignar, en términos generales, prioridades de carga u obtención a todos ios elementos de una página web. Según una realización preferente de la invención, la priorización se logra por medio de un sistema que consiste en un proxy http, flexible como para ser configurado para implementar retardos arbitrarios en los accesos a un conjunto de dominios. Pero no cualquier procedimiento de retardo funcionaría; por ejemplo, un retardo en la respuesta del proxy bloquearía todo el contenido restante y malgastaría una conexión del navegador. Se presenta más adelante una realización, apropiada para navegadores, de cómo usar un procedimiento de retardo de la invención propuesta.
Los navegadores actuales solicitan ios recursos de una página web usando una cola, donde las redirecciones son insertadas ai final de la cola. Este es un requisito natural que satisfacen todos los navegadores actuales. Con esta condición, las redirecciones introducidas de manera controlada transforman los retardos en prioridades y, por tanto, obtienen el reordenamiento deseado en la obtención de los recursos web; por lo tanto, la inserción de retardos es un elemento clave en esta realización preferida para reordenar los elementos según las prioridades asignadas. Las redirecciones HTTP se usan para modificarlos según el retardo deseado. Por ejemplo, para un retardo 1 se efectúa una redirección, para un retardo 2 se efectúan 2 redirecciones, etc. Y para gestionar el bloqueo de peticiones, algunas realizaciones proporcionan un nivel de retardo infinito.
La presente invención está basada en un nodo intermedio que, según una realización, es implementado como un servidor http proxy-caché web, flexible como para interceptar todas ¡as conexiones o peticiones enviadas por un navegador web a un servidor de origen. Este servidor http proxy-caché web es capaz de dividir ¡as peticiones entrantes en conjuntos, únicamente según e¡ vaior de una cabecera de "anfitrión" (¡a cabecera bttp ¡¡amada 'anfitrión'), Estos conjuntos corresponden a ¡os niveles de retardo requeridos (un conjunto para ningún retardo, un conjunto para un primer nivei de retardo, un conjunto para dos niveles de retardo, y así sucesivamente).
Una ruta (en inglés path) es ¡a forma de referenciar un archivo informático, directorio o recurso web. La ruta señala la localización exacta del archivo, directorio o recurso web mediante una cadena de caracteres concreta, que generalmente se compone de ¡os nombres de los directorios que conforman e¡ camino hasta el recurso buscado. Estos nombres estarán separados por un carácter delimitador que usuaimente es "\" en sistemas MS- DOS/Windows (Microsoft) o "i" en sistemas UNIX/Linux.
Hay distintas acciones a aplicar para cada conjunto. Las acciones requeridas por las presentes realizaciones de ¡a invención consisten en una selección rápida a partir del vaior de ¡a ruta; responder con una redirección http (códigos 303 de respuesta del http) con un valor de cabecera de ¡ocaüzación dinámica que depende de ¡a ruta de ¡a petición entrante; dejar que pase una petición y enviada, con una modificación de la ruta al origen especificado por el valor de cabecera del "anfitrión".
Una vez que una petición ¡lega al proxy, se selecciona una configuración previamente definida, usando el anfitrión a¡ que se aplica ¡a petición y su ruta. El comportamiento es el siguiente:
* La primera vez que una petición es interceptada por el servidor http proxy-caché web, se fija un nivel de retardo según un nivel de prioridad asignado usando ¡a configuración. Este nivel de retardo es codificado en un nuevo localizador uniforme de recursos (url) que es enviado como una respuesta de redirección http al navegador web. Además del nivel de retardo, la ruta original también es codificada dentro del nuevo url. A partir de esíe punió, todas las peticiones referidas a la original llegarán con esa codificación que contiene tanto el nivel de retardo como la ruta original.
* Cuando el servidor http proxy-caché web recibe una petición codificada (esta ya incluye una petición http más un nivel de prioridad codificado como un nivel de retardo), descodifica tanto la ruta como el nivel de retardo. Si el nivel es cero, la petición es enviada a su servidor de origen, o bien su respuesta es tomada desde el almacenamiento de memoria caché, y respondida de manera estándar. En caso contrario, el nivel de prioridad es incrementado (dando como resultado un nivel de retardo decrementado), se codifica una nueva redirección, con la ruta original y el nuevo nivel de retardo, y se envía al navegador.
El procedimiento propuesto por una realización de la presente invención para construir redirecciones consiste en insertar, al comienzo de la ruta de la petición, una cadena que codifica el nivel de retardo. La interacción básica entre el navegador y el proxy de dicha realización está esquemáticamente explicada en la Figura 1 , donde se muestra un procedimiento transparente de codificación. Cuando el navegador web (1 ) envía una petición (3) al proxy (2), el proxy analiza sintácticamente dicha petición y busca una redirección (4). Si la petición liega por primera vez al proxy, entonces se asigna un nivel de retardo según la prioridad fijada durante la configuración. Una respuesta de redirección del HTTP es construida (6) y enviada (7) de vuelta al navegador web, donde la respuesta puede ser procesada (8) directamente para capturar el recurso web solicitado, o puede ser puesta en cola (9) como el resto de las redirecciones.
En el caso en que la petición que llega al proxy contiene una redirección, entonces se construye una redirección (10) de retardo del siguiente nivel. Si ahora el nivel de retardo no es el último nivel (1 1 ), la siguiente etapa ya es el envío de la respuesta (7) al navegador web, como se ha explicado anteriormente. Pero si el nivel era efectivamente el último nivel, que es un retardo nulo para esta realización, pero que puede ser implementado para que sea cualquier otro valor, la próxima etapa es enviar una petición HTTP ai servidor de origen, o extraer su respuesta de la memoria caché web (12) y, finalmente, una vez que la respuesta está lista (13) (ya sea desde un origen o desde la memoria caché), se envía al navegador (7),
La redirección de peticiones evita manipular nada que no sea el uri del destino de la redirección, que contiene el anfitrión y la ruta de la nueva petición. Si también fueran manipulados los anfitriones, causarían colisiones con algunos otros anfitriones en Internet, por lo que manipular solamente la ruta es la manera no invasora más adecuada. Sin embargo, la técnica, según distintas realizaciones, podría consistir en cualquier manipulación de la ruta que, de alguna manera, pueda ser invertida muy rápidamente. Una manera sencilla y conveniente es insertar un prefijo. Por ejemplo, para una petición con una ruta /ruta-solicitada. html, el navegador web es redirigido a /retardo-nivei-3/ruta-solicitada.html, usando el código 303 de respuesta Http, y proporcionando el url precitado con el anfitrión original. Con referencia a la gestión de los niveles de retardo en más detalle, el proxy actúa de la siguiente manera: para un retardo cero, la petición es buscada en la memoria caché; si hay una coincidencia, entonces es servida; en caso contrario, es desviada al servidor de origen;
para un retardo N (con N > 0), la petición es redirigida (mediante la redirección http configurabie) a una petición de nivel N-1 de retardo. Esto consiste en construir una respuesta http con una petición que sea exactamente como la petición entrante, pero con una cadena prefijada a su ruta. Esta cadena codifica tanto el hecho de que es un retardo como su nivel. Continuando con el ejemplo previo del nivel 3 de retardo asignado:
1 . /miruta.htm! entrante, asignado al nivel 3 de retardo
2. Redirigido a /retardo-nivel-3/miruta.html
3. /retardo-nivei-3/miruta.htmi entrante, asignado al nivel 2 de retardo
4. Redirigido a /retardo-nivel-2/miruta.html
5. /retardo-nivel-2/miruta.html entrante, asignado al nivel 1 de retardo 6. Redirigido a /retardo-nivei-1/miruta,bíml
7. /reíardo-nivel-1/miruta,html entrante, asignado al nivel 0 de retardo
8. Redirigido a /retardo-nivel-O/miruta.html
5 9. /retardo-nivel-O/miruta.html entrante, desviado a la memoria caché web o al servidor de origen,
para un retardo infinito, la petición es rechazada.

Claims

REIVINDICACIONES
1. - Procedimiento para definir el orden de obtención de recursos web por un navegador web, que comprende e) recibir en un nodo intermedio una petición HTTP, incluida en un primer localizador uniforme de recursos, para un recurso web, enviada por un navegador web;
f) asignar un nivel de prioridad a la petición HTTP por parte del nodo intermedio;
g) codificar el nivel de prioridad y la petición HTTP en un segundo localizador uniforme de recursos;
h) enviar el segundo localizador uniforme de recursos como una respuesta de redirección HTTP al navegador web.
2. - Procedimiento según la reivindicación 1 , que comprende adicionalmente: i) recibir en el nodo intermedio una petición HTTP para un recurso web, con un nivel de prioridad enviado por el navegador web;
j) si el nivel de prioridad es inferior a un valor máximo previamente definido, modificar la petición HTTP aumentando el nivel de prioridad; k) codificar la petición del HTTP modificada en un tercer localizador uniforme de recursos;
I) enviar el tercer localizador uniforme de recursos, como una segunda respuesta de redirección HTTP, ai navegador web,
3. - Procedimiento según la reivindicación 2, en el cual el nivel de prioridad es igual a un valor máximo previamente definido, que comprende adicionalmente enviar la petición HTTP a un servidor de origen o a una memoria caché web, para obtener el recurso web,
4.- Procedimiento según las reivindicaciones precedentes, en el cual el nodo intermedio está configurado para implementar retardos para un conjunto de dominios.
5. - Procedimiento según ias reivindicaciones precedentes, en el cual el nivel de prioridad es impiementado insertando una cadena en la petición HTTP que codifica un retardo para un anfitrión original, que proporciona un localizador uniforme de recursos usando un código 303 de respuesta HTTP,
6. - Procedimiento según ias reivindicaciones 4 a 5, en el cual el retardo se fija según el nivel de prioridad, siendo el valor máximo definido previamente igual a un retardo nulo.
7. - Procedimiento según la reivindicación 6, en el cual un nivel de prioridad nulo corresponde a un retardo infinito, que hace que una petición HTTP sea rechazada en el nodo intermedio.
8. - Sistema para definir el orden de obtención de recursos web por un navegador web , donde el navegador web envía una petición HTTP a un servidor HTTP; el sistema está caracterizado por un nodo intermedio configurado para redirigir la petición HTTP al navegador web antes de dejar que la petición HTTP llegue al servidor HTTP, estando el nodo intermedio configurado para: recibir una petición HTTP, incluida en un primer localizador uniforme de recursos, para un recurso web, enviada por el navegador web; asignar un nivel de prioridad a la petición HTTP;
- codificar el nivel de prioridad y la petición HTTP en un segundo localizador uniforme de recursos;
enviar el segundo localizador uniforme de recursos como una respuesta de redirección HTTP al navegador web.
9.- Sistema según la reivindicación 8, en el cual el nodo intermedio está adicionaimente configurado para: recibir en el nodo intermedio una petición HTTP para un recurso web, con un nivel de prioridad, enviada por el navegador web; si e! nivel de prioridad es inferior a un valor máximo previamente definido, modificar la petición HTTP aumentando el nivel de prioridad; codificar la petición HTTP modificada en un tercer localizador uniforme de recursos;
- enviar el tercer localizador uniforme de recursos como una segunda respuesta de redirección HTTP al navegador web,
10. - Sistema según las reivindicaciones 8 a 9, en el cual el nodo intermedio está adicionaimente configurado para impiementar retardos para un conjunto de dominios.
11. - Sistema según una cualquiera de las reivindicaciones 8 a 10, en el cual el nodo intermedio está adicionaimente configurado para insertar una cadena en la petición HTTP, que codifica un retardo según el nivel de prioridad y con un anfitrión original, que proporciona un localizador uniforme de recursos, usando un código 303 de respuesta HTTP.
12. - Sistema según una cualquiera de las reivindicaciones 8 a 1 1 , en el cual el nodo intermedio es un servidor http proxy-caché.
13. - Producto de programa de ordenador que comprende código de programa de ordenador adaptado para realizar el procedimiento según cualquiera de las reivindicaciones 1 a 8 cuando dicho código de programa es ejecutado en un ordenador, un procesador de señales digitales, una formación de puertas programable en el terreno, un circuito integrado específico de la aplicación, un micro-procesador, un micro-controlador o cualquier otra forma de hardware programable.
PCT/ES2013/070691 2013-10-07 2013-10-07 Procedimiento y sistema para definir el orden de obtención de recursos web por un navegador web WO2015052354A1 (es)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP13895250.2A EP3057274A4 (en) 2013-10-07 2013-10-07 Method and system for defining the order in which web resources are obtained by a web browser
PCT/ES2013/070691 WO2015052354A1 (es) 2013-10-07 2013-10-07 Procedimiento y sistema para definir el orden de obtención de recursos web por un navegador web
BR112016007657A BR112016007657A2 (pt) 2013-10-07 2013-10-07 ?procedimento e sistema para definir a ordem de obtenção de recursos web por um navegador web?
US15/027,635 US20160261714A1 (en) 2013-10-07 2013-10-07 Method and System for Defining the Order in Which Web Resources are Obtained by a Web Browser

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/ES2013/070691 WO2015052354A1 (es) 2013-10-07 2013-10-07 Procedimiento y sistema para definir el orden de obtención de recursos web por un navegador web

Publications (1)

Publication Number Publication Date
WO2015052354A1 true WO2015052354A1 (es) 2015-04-16

Family

ID=52812543

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/ES2013/070691 WO2015052354A1 (es) 2013-10-07 2013-10-07 Procedimiento y sistema para definir el orden de obtención de recursos web por un navegador web

Country Status (4)

Country Link
US (1) US20160261714A1 (es)
EP (1) EP3057274A4 (es)
BR (1) BR112016007657A2 (es)
WO (1) WO2015052354A1 (es)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106550001A (zh) * 2015-09-23 2017-03-29 中兴通讯股份有限公司 一种重定向的方法及装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102151457B1 (ko) * 2014-08-25 2020-09-03 삼성전자 주식회사 통신 시스템에서 페이지 로딩 시간 단축 방법 및 장치
US20180063220A1 (en) * 2016-08-30 2018-03-01 Citrix Systems, Inc. Systems and methods to provide hypertext transfer protocol 2.0 optimization through multiple links
US11159642B2 (en) * 2019-07-19 2021-10-26 Cloudflare, Inc. Site and page specific resource prioritization

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6742016B1 (en) 2000-03-24 2004-05-25 Hewlett-Packard Devolpment Company, L.P. Request acceptor for a network application system and a method thereof
ES2257543T3 (es) * 2002-04-05 2006-08-01 Telefonaktiebolaget Lm Ericsson (Publ) Control de transferencia de objeto en una red de comunicaciones.
US20070263650A1 (en) * 2006-05-09 2007-11-15 Srivatsa Sivan Subramania Method for prioritizing web service requests
US20120023190A1 (en) * 2010-07-26 2012-01-26 Ari Backholm Mobile network traffic coordination across multiple applications
US8112471B2 (en) 2009-12-07 2012-02-07 Yottaa, Inc System and method for website performance optimization and internet traffic processing
US20130227078A1 (en) * 2012-02-23 2013-08-29 Coach Wei System and method for context specific website optimization

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296653B2 (en) * 2010-09-07 2019-05-21 F5 Networks, Inc. Systems and methods for accelerating web page loading

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6742016B1 (en) 2000-03-24 2004-05-25 Hewlett-Packard Devolpment Company, L.P. Request acceptor for a network application system and a method thereof
ES2257543T3 (es) * 2002-04-05 2006-08-01 Telefonaktiebolaget Lm Ericsson (Publ) Control de transferencia de objeto en una red de comunicaciones.
US20070263650A1 (en) * 2006-05-09 2007-11-15 Srivatsa Sivan Subramania Method for prioritizing web service requests
US8112471B2 (en) 2009-12-07 2012-02-07 Yottaa, Inc System and method for website performance optimization and internet traffic processing
US20120023190A1 (en) * 2010-07-26 2012-01-26 Ari Backholm Mobile network traffic coordination across multiple applications
US20130227078A1 (en) * 2012-02-23 2013-08-29 Coach Wei System and method for context specific website optimization

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
See also references of EP3057274A4
WIKIPEDIA: "Aging (scheduling).", 29 November 2012 (2012-11-29), XP055302841, Retrieved from the Internet <URL:http://in.wikipedia.org/w/index.php?title=Aging (scheduling)&oldid=52552369 >> [retrieved on 20140528] *
WIKIPEDIA: "HTTP 302.", 9 September 2013 (2013-09-09), XP055302836, Retrieved from the Internet <URL:http://in.wikipedia.org/w/index.php?title=HTTP_ 302&oldid=572216531> [retrieved on 20140528] *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106550001A (zh) * 2015-09-23 2017-03-29 中兴通讯股份有限公司 一种重定向的方法及装置
CN106550001B (zh) * 2015-09-23 2021-02-23 中兴通讯股份有限公司 一种重定向的方法及装置

Also Published As

Publication number Publication date
BR112016007657A2 (pt) 2017-08-01
US20160261714A1 (en) 2016-09-08
EP3057274A4 (en) 2017-05-10
EP3057274A1 (en) 2016-08-17

Similar Documents

Publication Publication Date Title
US9602613B2 (en) Method and system for accelerating browsing sessions
Grigorik Making the web faster with HTTP 2.0
ES2257543T3 (es) Control de transferencia de objeto en una red de comunicaciones.
JP7018498B2 (ja) プロキシベースのネットワーク通信における制御データのトランスポート
US9325785B2 (en) Device, system, and method for client-governed session persistency between one or more clients and servers of a data center
US9998521B2 (en) HTML streaming
US9521184B2 (en) Efficient storage and retrieval of resources for rendering structured documents
ES2502526T3 (es) Optimización de memoria caché
ES2394078T3 (es) Método y aparato para proporcionar un canal de datos de Internet de terceras partes
WO2015052354A1 (es) Procedimiento y sistema para definir el orden de obtención de recursos web por un navegador web
Smith Professional website performance: optimizing the front-end and back-end
ES2623299T3 (es) Transmisión por secuencias de red autónoma
EP3253026A1 (en) Cdn-based access control method and relevant device
US11115498B2 (en) Multi-path management
Oku et al. Extensible prioritization scheme for http
US10148735B1 (en) Application layer load balancer
EP1987439A2 (en) Storing and retrieving user context data
US8627467B2 (en) System and method for selectively storing web objects in a cache memory based on policy decisions
US10567541B2 (en) Network communication system and method with web push protocol
ES2652558T3 (es) Método para red de protocolo de transferencia de hipertexto y pasarela de red de banda ancha
WO2015052355A1 (es) Procedimiento y sistema para configurar una memoria caché web para procesar peticiones
CN108509243A (zh) 一种应用中的页面加载的方法、装置及电子设备
ES2328998B2 (es) Metodo de reduccion del tiempo de descarga de paginas web.
WO2015002525A1 (en) A system and method for synchronizing of cache remotely with pre-fetching of non-protected contents and protected contents
ES2377764T3 (es) Sistema de distribución de ficheros

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13895250

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 15027635

Country of ref document: US

Ref document number: 000468-2016

Country of ref document: PE

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2013895250

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2013895250

Country of ref document: EP

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112016007657

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112016007657

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20160406