US20130013724A1 - Method, system and apparatus for delivering web content - Google Patents
Method, system and apparatus for delivering web content Download PDFInfo
- Publication number
- US20130013724A1 US20130013724A1 US13/617,450 US201213617450A US2013013724A1 US 20130013724 A1 US20130013724 A1 US 20130013724A1 US 201213617450 A US201213617450 A US 201213617450A US 2013013724 A1 US2013013724 A1 US 2013013724A1
- Authority
- US
- United States
- Prior art keywords
- web page
- request
- web
- address
- web server
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000015654 memory Effects 0.000 claims abstract description 56
- 230000004044 response Effects 0.000 claims description 52
- 238000004891 communication Methods 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
Definitions
- Method 300 can then proceed to block 330 .
- processor 144 can be configured to determine whether the network addresses received at block 325 remain valid. As will be appreciated by those skilled in the art, the network addresses of the second and third web servers can be subject to change over time. The determination at block 330 can therefore be based on a timestamp associated with each network address. The timestamps can be received from DNS server 156 at block 325 . If the current time, available to processor 144 of web server 140 via a clock (not shown) included within web server 140 , exceeds any timestamp by a configurable interval (for example, three days) processor 144 can determine that the network address associated with that timestamp is no longer valid. Method 300 can then return to block 310 .
- method 300 need not include a determination at block 330 .
- web server 140 can be configured to request network addresses at scheduled, configurable intervals (for example, once per day) regardless of the validity of the network addresses in database 196 .
- web server 140 can be configured to request network addresses only after receiving a request for web page 188 from mobile electronic device 104 .
- the blocks of method 500 depicted in FIG. 5 are numbered similarly to those of method 300 , with the exception of the leading ‘5’ used in method 500 .
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- This application is a continuation of earlier non-provisional application having application Ser. No. 12/704,642 filed Feb. 12, 2010 now U.S. Pat. No. ______, granted on ______. The disclosure of aforementioned application Ser. No. 12/704,642 is hereby incorporated by reference in its entirety.
- The specification relates generally to the delivery of web content, and specifically to a method, system and apparatus for delivering web content.
- Mobile electronic devices such as cellular telephones are increasingly used for data services, including the viewing of web pages. Despite their rapidly improving capabilities, computational power, memory and network bandwidth continue to be limiting resources for such devices. In the case of web surfing, it is often necessary to transmit multiple requests to various entities in order to view a given web page.
- For example, viewing a web page may require the device to download data from several different servers. This requires the device not only to contact each of those servers, but also to determine how to contact the servers in the first place. These activities consume valuable device resources, and can result in delays and performance degradation.
- Embodiments are described with reference to the following figures, in which:
-
FIG. 1 depicts a system for delivering web content, according to a non-limiting embodiment; -
FIG. 2 depicts a web page of the system ofFIG. 1 , according to a non-limiting embodiment; -
FIG. 3 depicts a method for delivering web content, according to another non-limiting embodiment; and -
FIG. 4 depicts a method for delivering web content, according to a further non-limiting embodiment; and -
FIG. 5 depicts a method for delivering web content, according to yet another non-limiting embodiment. - According to an aspect of the specification, a method for delivering web content is provided. The method comprises maintaining a web page in a memory of a web server identifiable by a network address, the web page including at least one reference to a foreign element maintained at a second web server identifiable by a second network address; identifying the at least one reference; transmitting a request from an interface of the web server for obtaining the second network address; receiving the second network address of the second web server and storing the second network address in the memory in association with an identifier of the web page.
- According to a second aspect of the specification, a web server is provided. The web server comprises an interface for receiving and transmitting requests; a memory for maintaining a web page identifiable by a network address, the web page including at least one reference to a foreign element maintained at a second web server identifiable by a second network address; a processor interconnected with the interface and the memory, the processor configured to identify the at least one reference; the processor further configured to transmit a request via the interface for obtaining the second network address; the processor further configured to receive the second network address of the second web server for storage in the memory in association with an identifier of the web page.
- According to a third aspect of the specification, a method for delivering web content is provided. The method comprises transmitting a request for a web page from an interface of a mobile electronic device to a web server, the web page including at least one reference to a foreign element maintained at a second web server identifiable by a name and a corresponding network address; receiving the web page and a first network address from the web server at the interface; transmitting a first request for the foreign element using the first network address; transmitting a second request to a Domain Name System (“DNS”) server for a second network address corresponding to the name of the second web server from the interface; responsive to receiving the second network address, determining whether the first and second network addresses match; and, when the first and second network addresses do not match, discarding the first network address.
- According to a fourth aspect of the specification, a mobile electronic device is provided comprising: an interface for receiving and transmitting requests; a memory; and, a processor interconnected with the interface and the memory, the processor configured to transmit a request for a web page via the interface to a web server, the web page including at least one reference to a foreign element maintained at a second web server identifiable by a name and a corresponding network address; the processor further configured to receive the web page and a first network address for storage in the memory; the processor further configured to transmit a first request for the foreign element using the first network address; the processor further configured to transmit a second request to a Domain Name System (“DNS”) server for a second network address corresponding to the name of the second web server from the interface; the processor further configured, responsive to receiving the second network address, to determine whether the first and second network addresses match; and, when the first and second network addresses do not match, to discard the first network address.
- According to other aspects of the specification, computer readable storage media are provided for storing computer readable instructions for execution by a processor, the computer readable instructions implementing the above methods.
-
FIG. 1 depicts acommunications system 100 for delivering web content.System 100 includes a mobileelectronic device 104, which in the present embodiment is based on the computing environment and functionality of a hand-held wireless communication device. It will be understood, however, that mobileelectronic device 104 is not limited to a hand-held wireless communication device. Other mobile electronic devices are possible, such as cellular telephones, smart telephones, Personal Digital Assistants (“PDAs”), media or MP3 players, laptop computers and the like. Mobileelectronic device 104 includes aprocessor 108 and amemory 112.Memory 112 can be any suitable combination of volatile (e.g. Random Access Memory (“RAM”)) and non-volatile (e.g. read only memory (“ROM”), Electrically Erasable Programmable Read Only Memory (“EEPROM”), flash memory, magnetic computer storage device, or optical disc) memory. Mobileelectronic device 104 also includes acommunications interface 116 and one or more output devices such as adisplay 120 and aspeaker 124. Mobileelectronic device 104 further includes one or more input devices configured to receive input data such as akeypad 128, amicrophone 132 and apointing device 136.Pointing device 136 can include, for example, a touch screen integrated withdisplay 120, a scroll wheel and the like. The various components of mobileelectronic device 104 are interconnected, for example via a communication bus (not shown). Mobileelectronic device 104 can be powered by a battery (not shown). - System 100 also includes a
web server 140, which can be based on any well-known server environment. As such,web server 140 includes aprocessor 144 and amemory 148 which can be any suitable combination of volatile (e.g. Random Access Memory (“RAM”)) and non-volatile (e.g. read only memory (“ROM”), Electrically Erasable Programmable Read Only Memory (“EEPROM”), flash memory, magnetic computer storage device, or optical disc) memory.Web server 140 also includes acommunications interface 152.Web server 140 can be managed by way of input and output devices (not shown) such as a keyboard and display. Such input and output devices can be co-located withweb server 140 or can be located at a terminal (not shown) remote fromweb server 140. -
System 100 further includes a Domain Name System (“DNS”)server 156. As withweb server 140, DNSserver 156 can be based on any well-known server environment. It will be understood thatDNS server 156 need not be based on the same server environment asweb server 140.DNS server 156 includes aprocessor 160, amemory 164 which can be any suitable combination of volatile (e.g. Random Access Memory (“RAM”)) and non-volatile (e.g. read only memory (“ROM”), Electrically Erasable Programmable Read Only Memory (“EEPROM”), flash memory, magnetic computer storage device, or optical disc) memory and acommunications interface 168. - Mobile
electronic device 104,web server 140 andDNS server 156 are interconnected by anetwork 172 viarespective links Network 172 can include any suitable combination of wired and/or wireless networks, including but not limited to a Wide Area Network (“WAN”) such as the Internet, a Local Area Network (“LAN”), cell phone networks, WiFi networks, WiMax networks and the like.Links network 172. In particular,link 176 can be a wireless link based on Global System for Mobile communications (“GSM”), General Packet Radio Service (“GPRS”), Enhanced Data rates for GSM Evolution (“EDGE”), and the third-generation mobile communication system (3G), Institute of Electrical and Electronic Engineers (“IEEE”) 802.11 (WiFi) or other wireless protocols. It will be understood thatlink 176 also includes any base stations and backhaul links necessary to connect mobileelectronic device 104 tonetwork 172.Links network 172 and, respectively,web server 140 andDNS server 156. In light of the above, it will be understood thatcommunications interfaces links network 172. - In general,
web server 140 is configured to host web pages such as aweb page 188 maintained inmemory 148.Web server 140 thus includes aweb hosting application 190, comprising computer readable instructions maintained inmemory 148 for execution byprocessor 144.Processor 144 is configured, via execution ofweb hosting application 190, to hostweb page 188 as discussed below.Web server 140 can transmitweb page 188 to computing devices such as mobileelectronic device 104 in response to requests forweb page 188 received from such devices. Mobile electronic device includes aweb browser application 192 comprising computer readable instructions maintained inmemory 112, for execution byprocessor 108.Processor 108 can be configured, via execution ofweb browser application 192, to requestweb page 188 fromweb server 140 and to renderweb page 188 ondisplay 120 once received. - As will be understood by those skilled in the art,
web server 140 can be identified by a name, such as “www.webserver140.com,” as well as by a network address. The network address, which can be an Internet Protocol (“IP”) address such as 1.1.1.1, allows other computing devices to address requests forweb page 188 toweb server 140. It will be understood thatweb server 140 can represent a plurality of web servers, all of which are identifiable to mobileelectronic device 104 by the same network address. A router, load balancer or the like can be responsible for distributing requests among the plurality of web servers.DNS server 156 maintains in memory 164 alist 194 of web server names and corresponding network addresses, as will be discussed below in greater detail. In order to requestweb page 188 fromweb server 140, mobileelectronic device 104 can transmit a request toDNS server 156, the request including the name www.webserver140.com.DNS server 156 can then retrieve the corresponding network address 1.1.1.1 fromlist 194 and return the retrieved network address to mobileelectronic device 104. Mobileelectronic device 104 can then transmit a further request, using the network address, toweb server 140 forweb page 188. -
Web page 188 can contain one or more references to foreign elements—that is, elements such as text, images and the like which are not stored inmemory 148 ofweb server 140 but rather in the memory of other web servers (not shown) identified by other network addresses. Such other web servers can also be pluralities of web servers identifiable by a single network address. A reference to a foreign element can include the name of the other web server at which the element is hosted. In the present exemplary embodiment,web page 188 contains two references to foreign elements. Each reference includes the name of the web server where the foreign element is stored. For example, the first reference can be, “www.webserverx.com/image_star.jpg,” referring to an image file maintained in the memory of a second web server identified by the name www.webserverx.com. The second reference can be “web.server.yyy/image_ring.png,” referring to an image file maintained in the memory of a third web server identified by the name web.server.yyy. It will also be apparent that any given web page can contain less or more references to foreign elements thanweb page 188, and that those foreign elements are not restricted solely to images. For example, foreign elements can be references to other web pages. - Thus, as will be appreciated by those skilled in the art, in order to fully obtain
web page 188 for display at mobileelectronic device 104,web page 188 is typically requested fromweb server 140, and each foreign element is then requested from the other web server on which it is stored.FIG. 2 depicts a schematic representation ofweb page 188 as rendered ondisplay 120 of mobileelectronic device 104.Web page 188 can include text and images generally indicated at 200 that are maintained withinmemory 148 ofweb server 140. Also seen inFIG. 2 areforeign elements web page 188. In particular,foreign element 204 corresponds to the reference to image_star.jpg which is maintained at the second web server named www.webserverx.com.Foreign element 208 corresponds to the reference to image_ring.png which is maintained at the third web server named web.server.yyy. - Referring now to
FIG. 3 , amethod 300 for delivering web content will be discussed in conjunction withsystem 100. Each block shown inFIG. 3 is performed by the component ofsystem 100 under which it is listed. For example, the blocks ofmethod 300 falling along the right side ofFIG. 3 are performed byweb server 140. -
Method 300 begins atblock 305, at whichprocessor 144 ofweb server 140 is configured via execution ofweb hosting application 190 to traverseweb page 188 as stored inmemory 148 and identify any references to foreign elements therein. Continuing with theexemplary web page 188 discussed above,processor 144 ofweb server 140 can therefore be configured to identify, atblock 305, the references www.webserverx.com/image_star.jpg and web.serveryyy/image_ring.png. - Proceeding to block 310, having identified the above-mentioned references to foreign elements,
processor 144 can be configured to transmit, viainterface 152, one or more requests toDNS server 156 for the network addresses corresponding to the names included in the references identified atblock 305. It will be understood by those skilled in the art thatweb server 140 can transmit one request per reference or alternatively can transmit one request for all references identified. Other arrangements for requesting network addresses fromDNS server 156 may also occur to those skilled in the art. Solely for the sake of convenience in describingmethod 300, in the present exemplaryembodiment web server 140 will transmit one request for all identified references. Atblock 310, therefore,processor 144 is configured to transmit a request toDNS server 156 viainterface 152. The request includes the names of the second and third web servers hostingforeign elements - At
block 315, the request is received atDNS server 156 viainterface 168, having traversed link 180,network 172 and link 184. Once the request is received atblock 315,method 300 proceeds to block 320. Atblock 320,processor 160 ofDNS server 156 can be configured to searchlist 194 for network addresses corresponding to the names included in the request fromweb server 140. In the present exemplary embodiment,list 194 includes the entries shown in Table 1. -
TABLE 1 Contents of List 194Name Network Address www.webserver140.com 1.1.1.1 www.webserverx.com 1.2.3.4 web.server.yyy 2.2.2.2 - In completing the performance of
block 320,processor 160 ofDNS server 156 can be configured to transmit, viainterface 168, the retrieved network addresses toweb server 140. Thus, atblock 320DNS server 156 transmits network addresses 1.2.3.4 and 2.2.2.2, corresponding to the names included in the references to foreign elements located atblock 305. - At
block 325,processor 144 ofweb server 140 is configured, via execution ofweb hosting application 190, to receive the network addresses transmitted byDNS server 156 and store the received network addresses inmemory 148. In particular, referring briefly toFIG. 1 ,web server 140 includes adatabase 196 inmemory 148.Database 196 can contain a record for each web page hosted byweb server 140. Each record ofdatabase 196 includes an identification of the web page, as well as a name-value pair for each reference to a foreign element included in the web page. The name-value pair can comprise the name and corresponding network address of the other web server at which the foreign element is hosted. In the present exemplary embodiment, therefore,database 196 includes a record forweb page 188. Following the performance ofblock 325, the record can appear as shown in Table 2. -
TABLE 2 Contents of Database 196Web Page Foreign Element 204 Foreign Element 208www.webserver140.com/webpage188.html {www.webserverx.com, {web.server.yyy, 1.2.3.4} 2.2.2.2} - The first entry, www.webserver140.com/webpage188.html, identifies
web page 188 as a particular file onweb server 140. That is, “webpage188.html” is an identifier forweb page 188. The second entry includes the name and network address for the second web server hostingforeign element 204. The final entry includes the name and network address for the third web server hostingforeign element 208. It will be understood that for web pages with additional foreign elements, additional entries could be made indatabase 196. For instance, ifweb page 188 included four references to foreign elements, the above record would include two additional entries. -
Method 300 can then proceed to block 330. Atblock 330,processor 144 can be configured to determine whether the network addresses received atblock 325 remain valid. As will be appreciated by those skilled in the art, the network addresses of the second and third web servers can be subject to change over time. The determination atblock 330 can therefore be based on a timestamp associated with each network address. The timestamps can be received fromDNS server 156 atblock 325. If the current time, available toprocessor 144 ofweb server 140 via a clock (not shown) included withinweb server 140, exceeds any timestamp by a configurable interval (for example, three days)processor 144 can determine that the network address associated with that timestamp is no longer valid.Method 300 can then return to block 310. If, on the other hand,processor 144 determines atblock 330 that the network addresses are valid,method 300 can repeat the performance ofblock 330. As will now be apparent to those skilled in the art, block 330 need not be performed in every performance ofmethod 300. For example, block 330 can be performed only at scheduled, configurable intervals of time (for example, once per day). -
Method 300 continues (whether or not block 330 is performed) atblock 335. Atblock 335,processor 108 of mobileelectronic device 104 can be configured, via execution ofweb browser application 192, to transmit a request for the network address ofweb server 140. Performance ofblock 335 can be initiated by the receipt of input data at keypad 128 (or any other input device of mobile electronic device 104) requesting that mobileelectronic device 104 retrieve and displayweb page 188. The request transmitted atblock 335 thus includes the name ofweb server 140, www.webserver140.com. - At
block 340,DNS server 156 receives the request from mobileelectronic device 104. Proceeding to block 345,DNS server 156 can be configured to retrieve the network address ofweb server 140 as shown above in Table 1 and transmit the network address to mobileelectronic device 104.Processor 108 of mobileelectronic device 104 receives the network address ofweb server 140 viainterface 116 atblock 350. Proceeding to block 355,processor 108 can be configured to transmit a request forweb page 188 toweb server 140, using the network address obtained atblock 350 to contactweb server 140. The request transmitted atblock 355 can be a Hypertext Transfer Protocol (“HTTP”) request including, for example, the name ofweb server 140 and the above-mentioned identifier for web page 188: www.webserver140.com/webpage188.html. - Continuing with the performance of
method 300, atblock 360processor 144 ofweb server 140 receives, viainterface 152, the request forweb page 188. Atblock 365,processor 144 can be configured via execution ofweb hosting application 190 to retrieve bothweb page 188 and the DNS responses forweb page 188 received atblock 325 and stored indatabase 196.Processor 144 can be configured to then transmitweb page 188 and the retrieved DNS responses forweb page 188 to mobileelectronic device 104. The transmission of DNS responses atblock 365 can take place in the form of an HTTP response header with the following exemplary format: - HTTP-DNS-Results: {www.webserverx.com, 1.2.3.4}, {web.server.yyy, 2.2.2.2}
- Following receipt (and storage in memory 112) of
web page 188 and DNS responses atblock 370,processor 108 of mobileelectronic device 104 can then be configured to transmit requests forforeign elements foreign elements block 375. As will now be apparent to those skilled in the art, mobileelectronic device 104 can be configured to displayweb page 188 as inFIG. 2 onceforeign elements - From the above description of the present embodiment, certain advantages will now be apparent. For example, as a result of receiving network addresses for the web servers hosting foreign elements in a web page along with the web page itself, mobile
electronic device 104 is no longer required to transmit additional requests toDNS server 156 to determine the network addresses of those other web servers. Thus, mobileelectronic device 104 makes more efficient use of the network bandwidth available to it, and computational and memory resources are released that otherwise would have been consumed sending DNS requests and waiting for responses to those requests. Instead, additional DNS requests are off-loaded toweb server 140, which will generally far surpass mobileelectronic device 104 in terms of available bandwidth, memory and computational power. The performance of mobileelectronic device 104 executingweb browser application 192 is thus increased. Other advantages will also occur to those skilled in the art. As a further example, DNS requests can be made over User Datagram Protocol (“UDP”) or other similar protocols which lack reliable transmission mechanisms. Thus, if a DNS request is lost (due to network or transmission failures) it is simply re-sent after a certain period of time elapses without response. This waiting and retransmission would be costly to mobileelectronic device 104, but can be offloaded toweb server 140 by the performance ofmethod 300. - As will be appreciated by those skilled in the art, variations can be made to
method 300. In some embodiments,method 300 can be varied as shown inFIG. 4 , which depicts a continuation ofmethod 300. Beginning following the performance ofblock 370 as discussed above in connection withFIG. 3 , mobile electronic device can proceed to block 375 a rather than block 375. Atblock 375 a,processor 108 can be configured, via execution ofbrowser application 192, to transmit two requests relating to a given foreign element.Processor 108 can thus be configured to transmit, viainterface 116, a request forforeign element 204 to the second web server using the network address (1.2.3.4) obtained atblock 370.Processor 108 can also be configured to transmit, substantially simultaneously, a request toDNS server 156 for the network address corresponding to the name of the second web server (www.webserverx.com). - At
blocks DNS server 156 receive the requests from mobileelectronic device 104. Atblocks foreign element 204 whileDNS server 156 returns the network address corresponding to www.webserverx.com.Processor 108 of mobileelectronic device 104 can be configured to receive, atblocks foreign element 204 and the second network address corresponding to www.webserverx.com (the first having been received at block 370). - At
block 382 a,processor 108 of mobileelectronic device 104 can be configured to determine whether the network address received atblock 381 a matches the network address corresponding to www.webserverx.com received atblock 370. If the determination atblock 382 a is affirmative—that is, if bothweb server 140 andDNS server 156 have provided mobileelectronic device 104 with the same network address for the second web server—processor 108 can be configured to perform block 383 a, at which a request forforeign element 208 can be transmitted to the third web server. Note that the request forforeign element 208 can also be transmitted to the third web server as part of the performance ofblock 375 a, in which case the performance ofblock 383 a would not be necessary. In such a variation, following an affirmative determination atblock 382 aprocessor 108 can be configured to simply proceed with the displaying ofweb page 188. - A negative determination at
block 382 a, where the network address received fromDNS server 156 is not 1.2.3.4 (the network address corresponding to www.webserverx.com received fromweb server 140 at block 370), can indicate thatweb server 140 has been compromised or is part of an attempt to misdirect mobileelectronic device 104. Such a mismatch can also indicate that the foreign element received atblock 380 a is not in factforeign element 204.Processor 108 of mobile electronic device can thus be configured to perform block 384 a. Atblock 384 a,processor 108 can be configured to discard any foreign elements received atblock 380 a, as they may be illegitimate.Processor 108 can also be configured to discard all network addresses received atblock 370.Processor 108 can also be configured to store an indication inmemory 112 that future DNS responses fromweb server 140 are to be ignored, either permanently or for a configurable period of time. Following the performance ofblock 384 a,processor 108 can be configured to obtain network addresses corresponding to the www.webserverx.com and web.server.yyy directly fromDNS server 156. - As will be appreciated by those skilled in the art, further variations can be made to the above-described embodiments. For example,
method 300 need not include a determination atblock 330. Instead, in someembodiments web server 140 can be configured to request network addresses at scheduled, configurable intervals (for example, once per day) regardless of the validity of the network addresses indatabase 196. In some embodiments, as shown inFIG. 5 ,web server 140 can be configured to request network addresses only after receiving a request forweb page 188 from mobileelectronic device 104. The blocks ofmethod 500 depicted inFIG. 5 are numbered similarly to those ofmethod 300, with the exception of the leading ‘5’ used inmethod 500. That is, blocks 535, 540, 545, 550, 555, 560, 505, 510, 515, 520, 525, 565, 570 and 575 correspond respectively toblocks method 300. Note thatmethod 500 does not include an equivalent to block 330, and that the blocks ofmethod 500 are rearranged compared to those ofmethod 300. In the performance ofmethod 500,web server 140 identifies references toforeign elements web page 188. - In some embodiments, performances of
methods blocks electronic device 104. The header can indicate that mobileelectronic device 104 is capable of receiving DNS responses as discussed above along with the requested web page. In such embodiments,web server 140 can determine, atblocks electronic device 104 indicates support for receipt of DNS responses,web server 140 can proceed toblocks web server 140 can simply return the requested web page, without DNS responses. - Additionally, in some embodiments mobile
electronic device 104 can be configured to associate DNS responses received atblocks web page 188. For instance, the DNS responses can be stored inmemory 112 along with a flag or other indication that the DNS responses were received in connection withweb page 188 and are not to be used in obtaining any other web page. As will now be apparent to those skilled in the art, association of received DNS responses with a particular web page can prevent a malicious entity from pollutingmemory 112 with false DNS responses in an effort to misdirect mobileelectronic device 104 in future web page requests. - It will be understood that the methods, systems and apparatus described herein need not be limited to web browsing. For example, email and instant messaging applications executing on messaging servers and mobile electronic devices can also perform the methods described above. For example, an instant message can be transmitted from a mobile electronic device, with a specified destination (such as another mobile electronic device). The instant message can contain a reference to a web page, such as www.webserverx.com/webpage.html. A messaging server responsible for routing the instant message to the destination can be configured to obtain a network address from
DNS server 156 corresponding to www.webserverx.com and to transmit the network address to the destination along with the message itself. As a result, it will not be necessary for the destination to request a network address prior to obtaining the web page. It will now be apparent that such variations can substantially follow the blocks ofFIG. 5 . That is, an instant message can be transmitted from mobile electronic device 104 (555). A messaging server can receive the instant message (560) and identify a reference to a web page therein (505). The messaging server can then request (510) a network address corresponding to the name of the web server included in the instant message reference. Having obtained the network address (525) the messaging server can forward the instant message to the appropriate destination along with the DNS response (565). It will also be apparent that the requests and responses described herein need not be limited to HTTP requests and responses, and that a wide variety of other suitable protocols will occur to those skilled in the art. - Those skilled in the art will appreciate that in some embodiments, the functionality of
web browser application 192 executing onprocessor 108 and that ofweb hosting application 190 executing onprocessor 144 can be implemented using pre-programmed hardware or firmware elements (e.g., application specific integrated circuits (ASICs), electrically erasable programmable read-only memories (EEPROMs), etc.), or other related components. In other embodiments,web browser application 192 andweb hosting application 190 can be maintained on computer readable storage media other thanmemories processors 108 and 144 (e.g., removable diskette, CD-ROM, ROM, fixed disk, USB drive). Other exemplary computer readable storage media include remote storage from which computer readable instructions are transmittable toprocessors - Persons skilled in the art will appreciate that there are yet more alternative implementations and modifications possible for implementing the embodiments, and that the above implementations and examples are only illustrations of one or more embodiments. The scope, therefore, is only to be limited by the claims appended hereto.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/617,450 US8667094B2 (en) | 2010-02-12 | 2012-09-14 | Method, system and apparatus for delivering web content |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/704,642 US8326947B2 (en) | 2010-02-12 | 2010-02-12 | Method, system and apparatus for delivering web content |
US13/617,450 US8667094B2 (en) | 2010-02-12 | 2012-09-14 | Method, system and apparatus for delivering web content |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/704,642 Continuation US8326947B2 (en) | 2010-02-12 | 2010-02-12 | Method, system and apparatus for delivering web content |
Publications (2)
Publication Number | Publication Date |
---|---|
US20130013724A1 true US20130013724A1 (en) | 2013-01-10 |
US8667094B2 US8667094B2 (en) | 2014-03-04 |
Family
ID=44370400
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/704,642 Active 2030-12-17 US8326947B2 (en) | 2010-02-12 | 2010-02-12 | Method, system and apparatus for delivering web content |
US13/617,450 Active US8667094B2 (en) | 2010-02-12 | 2012-09-14 | Method, system and apparatus for delivering web content |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/704,642 Active 2030-12-17 US8326947B2 (en) | 2010-02-12 | 2010-02-12 | Method, system and apparatus for delivering web content |
Country Status (1)
Country | Link |
---|---|
US (2) | US8326947B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100294B (en) | 2014-05-20 | 2018-05-08 | 阿里巴巴集团控股有限公司 | Obtain method, system, the webserver, browser and the GSLB of webpage |
WO2015179244A1 (en) * | 2014-05-20 | 2015-11-26 | Alibaba Group Holding Limited | Method and system for acquiring web pages |
EP3688964A4 (en) * | 2017-09-29 | 2021-04-14 | InterDigital CE Patent Holdings | INEXPENSIVE SOLUTION FOR INTELLIGENT BUILDING ACTIVATED VIA INTELLIGENT GATEWAY |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7082476B1 (en) * | 2000-05-24 | 2006-07-25 | Cisco Technology, Inc. | System and method of optimizing retrieval of network resources by identifying and substituting embedded symbolic host name references with network addresses in accordance with substitution policies |
US20100088398A1 (en) * | 2007-03-12 | 2010-04-08 | Robert Plamondon | Systems and methods for domain name resolution interception caching |
US20100241740A1 (en) * | 2009-03-23 | 2010-09-23 | Yahoo! Inc. | System and method for resolving network addresses |
US7970940B1 (en) * | 2009-12-22 | 2011-06-28 | Intel Corporation | Domain name system lookup latency reduction |
US8028091B1 (en) * | 2002-06-28 | 2011-09-27 | At&T Intellectual Property I. L.P. | System and method for reducing DNS lookup traffic in a computer data network |
US8280946B1 (en) * | 2003-09-10 | 2012-10-02 | Google Inc. | Reduction of perceived DNS lookup latency |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134588A (en) | 1997-11-12 | 2000-10-17 | International Business Machines Corporation | High availability web browser access to servers |
US6366947B1 (en) | 1998-01-20 | 2002-04-02 | Redmond Venture, Inc. | System and method for accelerating network interaction |
US6108703A (en) * | 1998-07-14 | 2000-08-22 | Massachusetts Institute Of Technology | Global hosting system |
US6799214B1 (en) * | 2000-03-03 | 2004-09-28 | Nec Corporation | System and method for efficient content delivery using redirection pages received from the content provider original site and the mirror sites |
US20050021862A1 (en) * | 2000-03-31 | 2005-01-27 | Dickens Coal Llc | Automatic selection of content-delivery provider using link mapping database |
US7089325B1 (en) * | 2000-07-05 | 2006-08-08 | Register.Com, Inc. | Method and apparatus for URL forwarding |
US7636792B1 (en) * | 2001-07-13 | 2009-12-22 | Oracle International Corporation | Methods and systems for dynamic and automatic content creation for mobile devices |
US7194553B2 (en) * | 2001-10-16 | 2007-03-20 | Microsoft Corporation | Resolving virtual network names |
US7840645B1 (en) * | 2001-10-22 | 2010-11-23 | Cisco Technology, Inc. | Methods and apparatus for providing content over a computer network |
US7499998B2 (en) * | 2004-12-01 | 2009-03-03 | Cisco Technology, Inc. | Arrangement in a server for providing dynamic domain name system services for each received request |
US20060274869A1 (en) | 2005-06-07 | 2006-12-07 | Yahoo! Inc. | Dynamically generating content based on capabilities of a mobile device |
TW201019668A (en) * | 2008-11-03 | 2010-05-16 | Inventec Corp | Web server system and method for operating web server thereof |
-
2010
- 2010-02-12 US US12/704,642 patent/US8326947B2/en active Active
-
2012
- 2012-09-14 US US13/617,450 patent/US8667094B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7082476B1 (en) * | 2000-05-24 | 2006-07-25 | Cisco Technology, Inc. | System and method of optimizing retrieval of network resources by identifying and substituting embedded symbolic host name references with network addresses in accordance with substitution policies |
US8028091B1 (en) * | 2002-06-28 | 2011-09-27 | At&T Intellectual Property I. L.P. | System and method for reducing DNS lookup traffic in a computer data network |
US8280946B1 (en) * | 2003-09-10 | 2012-10-02 | Google Inc. | Reduction of perceived DNS lookup latency |
US20100088398A1 (en) * | 2007-03-12 | 2010-04-08 | Robert Plamondon | Systems and methods for domain name resolution interception caching |
US20100241740A1 (en) * | 2009-03-23 | 2010-09-23 | Yahoo! Inc. | System and method for resolving network addresses |
US7970940B1 (en) * | 2009-12-22 | 2011-06-28 | Intel Corporation | Domain name system lookup latency reduction |
Also Published As
Publication number | Publication date |
---|---|
US8326947B2 (en) | 2012-12-04 |
US20110202632A1 (en) | 2011-08-18 |
US8667094B2 (en) | 2014-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9444759B2 (en) | Service provider registration by a content broker | |
US8521851B1 (en) | DNS query processing using resource identifiers specifying an application broker | |
US9002334B2 (en) | Systems and methods for delivering multimedia information to mobile devices | |
TW201029422A (en) | Methods, apparatuses, and computer program products for determining a network interface to access a network resource | |
WO2013104172A1 (en) | Method for realizing load balancing, dns server, and client | |
US8838480B2 (en) | Method and apparatus for display of operator ads | |
US11533275B2 (en) | Method and apparatus for allocating server in wireless communication system | |
CN110830565A (en) | Resource downloading method, device, system, electronic equipment and storage medium | |
US8667094B2 (en) | Method, system and apparatus for delivering web content | |
US8452879B1 (en) | Allocation of connection persistence to mobile browsers | |
WO2005015416A1 (en) | Synchronization extent of mail client based on data link characteristics | |
US10382981B2 (en) | Cellular network protocol optimizations | |
CA2731626C (en) | Method, system and apparatus for delivering web content | |
US20140025738A1 (en) | System and method for communicating data to multiple communication devices | |
US9363665B1 (en) | Targeting insertion work-around for long term evolution (LTE) path | |
US9516519B2 (en) | Methods and systems of internet protocol optimization for cellular data networks | |
KR101093047B1 (en) | Data providing system and method using multiple channels of full browsing service | |
US10530739B2 (en) | Method and apparatus for address resolution of multicast/broadcast resources using domain name systems | |
US20130114584A1 (en) | Method for establishing a bridge connection among wireless access points | |
US11310679B2 (en) | Message by message tunability of message reliability in a cellular network | |
US9571668B1 (en) | Enabling a toll-free data service based on a type of network connection | |
US20160164959A1 (en) | Code-based device access method and user device for code-based device access | |
US10098174B2 (en) | Maintaining continuous sessions in cellular data networks | |
JP4499060B2 (en) | Wireless notification system, wireless notification device, wireless notification method, computer program, and recording medium | |
EP2946526A1 (en) | Web content communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: RESEARCH IN MOTION LIMITED, CANADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MARTIN, DARYL JOSEPH;REEL/FRAME:028992/0540 Effective date: 20100208 |
|
AS | Assignment |
Owner name: BLACKBERRY LIMITED, ONTARIO Free format text: CHANGE OF NAME;ASSIGNOR:RESEARCH IN MOTION LIMITED;REEL/FRAME:032035/0883 Effective date: 20130709 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551) Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
AS | Assignment |
Owner name: MALIKIE INNOVATIONS LIMITED, IRELAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BLACKBERRY LIMITED;REEL/FRAME:064104/0103 Effective date: 20230511 |
|
AS | Assignment |
Owner name: MALIKIE INNOVATIONS LIMITED, IRELAND Free format text: NUNC PRO TUNC ASSIGNMENT;ASSIGNOR:BLACKBERRY LIMITED;REEL/FRAME:064270/0001 Effective date: 20230511 |