Restoring uniform resource locator context for a proxy
By generating modified URLs that include suffix fields and original URL components, the resource consumption problem caused by proxy server redirection is solved, and efficient web browser navigation is achieved.
Patent Information
- Application Number
- CN202180073920.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-10-29
- Filing Date
- 2021-07-30
- Publication Date
- 2026-01-06
- Estimated Expiration
- 2041-07-30
AI Technical Summary
In existing technologies, when a proxy server redirects to an identity provider, the URL component may be removed, causing the web browser to navigate through multiple pages, consuming the processor resources and energy of the client device.
The processor generates modified URLs that include suffix fields and original URL components, directly navigating to the target web page and avoiding unnecessary redirects.
It reduces processor resource and energy consumption, improves navigation efficiency, and allows users to directly access the expected web page.
Smart Images

Figure CN116368787B_ABST
Abstract
Description
Background Technology
[0001] A proxy server can be a server application and / or device that acts as an intermediary for requests from clients for resources provided by a server. When a client submits a request for a resource, the proxy server can act on behalf of the client. Therefore, instead of connecting directly to a server that can fulfill the request for the resource, a client can direct its request to a proxy server, which can evaluate the request and perform network transactions to fulfill it. Proxy servers can simplify or control the complexity of fulfilling a request and can provide security and / or privacy to the client. Attached Figure Description
[0002] The features of this disclosure are shown by way of example and are not limited to the accompanying drawings, in which similar reference numerals indicate similar elements, wherein:
[0003] Figure 1 A block diagram of a network environment according to an embodiment of the present disclosure is shown, wherein the apparatus can navigate a web browser to a modified URL, and wherein the modified URL may include a suffix field of a proxy server and a URL component, so that the web browser navigates to a web page corresponding to the URL component via the proxy server.
[0004] Figure 2 Embodiments according to this disclosure are depicted. Figure 1 A block diagram of the device depicted in the image;
[0005] Figure 3 and Figure 4 Flowcharts are depicted respectively for methods of navigating a web browser to a modified URL according to embodiments of the present disclosure, wherein the modified URL may include a suffix field and URL components included in the original URL; and
[0006] Figure 5 A block diagram of a computer-readable medium according to an embodiment of the present disclosure is depicted, on which computer-readable instructions for navigating a web browser to a modified URL may be stored, wherein the modified URL may include a suffix field and a page identifier to cause the web browser to navigate to a web page corresponding to the page identifier. Detailed Implementation
[0007] For purposes of brevity and illustration, the principles of this disclosure are described primarily by reference to embodiments and examples thereof. Numerous specific details are set forth in the following description to provide an understanding of the embodiments and examples. However, it will be apparent to those skilled in the art that the embodiments and examples may be practiced without being limited to these specific details. In some instances, well-known methods and / or structures have not been described in detail to avoid unnecessarily obscuring the description of the embodiments and examples. Furthermore, the embodiments and examples may be used together in various combinations.
[0008] Throughout this disclosure, the terms "a" and "an" are intended to mean at least one of a particular element. As used herein, the term "comprising" means including but not limited to, and the term "containing" means including but not limited to. The term "based on" means at least partially based on.
[0009] A proxy server can receive requests from client devices pointing to a URL, where the URL may include a specific domain and specific URL components. A specific URL component can be a specific subdirectory of the URL, a specific query string, a specific fragment, etc., and may, for example, correspond to a web page that can be accessed through a login page corresponding to the specific domain listed in the URL. For example, in some cases, when a specific domain includes multiple web pages and / or when the web page corresponding to a specific URL component is embedded within multiple web pages, navigating from the login page of the specific domain to the web page corresponding to the specific URL component can be time-consuming and may require additional resources and energy consumption on the client device.
[0010] In cases where a user on a client device needs to be authenticated before being allowed access to a web page corresponding to a URL, a proxy server can redirect the client device's web browser to an identity provider. Generally, the identity provider offers authentication and / or authorization services to the service provider. The proxy server can add a suffix domain to the URL and send the URL with the added suffix domain to the identity provider, allowing the identity provider to authenticate the user to access the web page corresponding to the URL. The identity provider can authenticate the user, and if authenticated, can interact with the service provider of the web page corresponding to the URL, enabling the service provider to identify the user as trustworthy when the user logs in. The identity provider can also send a return URL to the proxy server, which may exclude URL components included in the original URL. Instead, the return URL may include both the proxy server's original and suffix domains. The proxy server can also transmit the return URL to the client device, allowing the web browser on the client device to navigate to it.
[0011] As mentioned above, because the returned URL may not include URL components included in the original URL, when a web browser navigates to the returned URL, it may be directed to a proxy login page. That is, the web browser may be directed to a login page corresponding to both the domain and suffix domain of the URL that includes the proxy (e.g., the proxy server), rather than a web page corresponding to the URL component that can be accessed through the proxy login page. A technical problem with proxy servers redirecting client requests to the identity provider might be that such redirection could result in the removal of URL components listed in the URL, and the web browser being directed to the proxy login page URL instead of the URL with the URL component. Therefore, users might be required to navigate through multiple other web pages before reaching the web page corresponding to the URL component, potentially resulting in additional energy and resource consumption by the client device's processor.
[0012] This document discloses apparatus, methods, and computer-readable media that, after a web browser is redirected to an identity provider via a proxy server, enable the web browser to directly navigate to a web page corresponding to a URL component listed in the original URL. Specifically, a processor can identify a navigation event in response to a URL being entered into the web browser's address bar, wherein the URL may list domains. The processor can also determine whether the web browser has received an instruction to navigate to a return URL, wherein the return URL may include a suffix field and does not include the URL component included in the original URL. That is, for example, as discussed herein, the processor can determine whether the web browser has received a return URL from a proxy server that includes a suffix field and does not include the URL component of the original URL, which may occur when the proxy server redirects the URL to the identity provider.
[0013] Based on the determination that the web browser has received instructions to navigate to the returned URL, the processor can generate a modified URL by adding a suffix field to the URL to restore the context of the URL used for proxies (e.g., proxy servers). Furthermore, the processor can navigate the web browser to the modified URL. By generating the modified URL (which may include the suffix field of the returned URL and the URL components listed in the original URL), the web browser can directly navigate to the web page corresponding to the URL component. Therefore, the processor can avoid having to navigate from the web page corresponding to the returned URL to the web page corresponding to the URL component, which might be necessary in conventional client devices. As discussed herein, the technical improvement provided by the implementation of the features of this disclosure can be that the amount of processing resources and energy consumed can be reduced and / or minimized so that the web browser is navigated to the web page corresponding to the intended URL component by generating the modified URL and navigating to the modified URL.
[0014] First refer to Figure 1 and Figure 2 . Figure 1 A block diagram of a network environment 100 according to an embodiment of the present disclosure is shown, wherein device 102 can navigate a web browser to a modified Uniform Resource Locator (URL), and wherein the modified URL may include a suffix field and a URL component so that the web browser can navigate to a web page corresponding to the URL component via a proxy server. Figure 2 The embodiments of the present disclosure are depicted in Figure 1 The block diagram of the device 102 depicted herein is shown. It should be understood that the network environment 100 and the device 102 of the network environment 100 may include additional features, and some features described herein may be removed and / or modified without departing from the scope of the network environment 100 and / or the device 102.
[0015] Device 102 may include a processor 104 capable of controlling the operation of device 102 and a memory 106 capable of storing data accessible and / or executable by processor 104. Processor 104 may be a semiconductor-based microprocessor, central processing unit (CPU), application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), and / or other hardware device. Memory 106 may also be referred to as a computer-readable medium, such as random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), storage device, etc. Memory 106 may be a non-transitory computer-readable storage medium, wherein the term "non-transitory" excludes transient propagation signals. In any respect, memory 106 may have machine-readable instructions stored thereon, which processor 104 can execute.
[0016] Although device 102 is depicted as having a single processor 104, it should be understood that device 102 may include additional processors and / or cores without departing from the scope of device 102. In this regard, reference to a single processor 104 and a single memory 106 can be understood to additionally or alternatively apply to multiple processors 104 and multiple memories 106. Additionally, or alternatively, processor 104 and memory 106 may be integrated into a single component, for example, an integrated circuit on which both processor 104 and memory 106 may be provided. Additionally, or alternatively, the operations performed by processor 104 as described herein may be distributed across multiple devices 102 and / or multiple processors 104.
[0017] According to the example, device 102 can be a computing device, such as a laptop, tablet, or smartphone, through which a user can access web pages via a web browser 108 that can run on device 102. In some examples, the user can enter or otherwise input a URL 110 having a domain and a URL component 111 into the address bar 112 of the web browser. Thus, URL 110 can point to a specific URL component 111 of the domain, such as a "favorites" subdirectory. As a non-limiting example of URL component 111 including a subdirectory, URL 110 can have a domain "www.xyz.com" and a subdirectory added to the end of the domain. For example, the URL might have a form similar to http: / / www.xyz.com / subdirectory. The subdirectory can correspond to a web page accessible from the login page of the "www.xyz.com" domain.
[0018] Alternatively, URL component 111 may include a query string of the URL, such as a portion of the URL containing "?". As another example, URL component 111 may include a fragment portion of the URL, such as a portion of the URL containing or following "#". An example of a URL containing a query string ("lang") and a fragment portion ("section2") is: "https: / / xyz.com / sample / help.html?lang=US#section2".
[0019] In various examples, a user may type URL 110 into address bar 112, paste URL 110 into address bar 112, follow a link that caused URL 110 to be entered into address bar 112 (e.g., from an email, bookmark, etc.), and / or something similar. In other examples, URL 110 may be a redirection of URL 110 via an application (e.g., via JavaScript that automatically redirects to URL 110). Furthermore, once the user executes URL 110, web browser 108 may attempt to navigate to the web page 120 corresponding to URL 110. In some cases, web browser 108 may navigate directly to the web page 120 corresponding to URL 110, or via one or more redirects. In other cases where the user needs to be authenticated and / or authorized before being allowed access to the web page 120 corresponding to URL 110, web browser 108 may navigate to identity provider 122 before navigating to web page 120. Figure 1 As shown, web browser 108 can navigate to web page 120 and / or redirect to identity provider 122 via network 126, which can be the Internet, wide area network, etc.
[0020] Identity provider 120 can provide authentication and authorization services to service providers such as resources and web pages. That is, when a user attempts to log in to web page 120, the service provider of web page 120 may not know how to authenticate the user and can therefore delegate this determination to identity provider 122. Web browser 108 can be redirected (e.g., based on a user request to access web page 120) to a URL hosted on identity provider 122. Furthermore, the user can enter their username, password, and / or other credentials that identity provider 122 can use to authenticate the user. If authenticated, identity provider 122 can redirect back to the service provider, providing some statement that the user has been authenticated, and the service provider can allow the user to access web page 120 via web browser 108. Identity provider 122 and the service provider can employ any suitable authentication process to authenticate the user and allow or deny the user's access to web page 120.
[0021] In some cases, web browser 108 may redirect navigation to URL 110 to proxy server 124, which may act as a proxy for device 102. In this case, proxy server 124 may act as a suffix proxy. Proxy server 124 may provide functionality, security, and / or privacy to device 102 and / or its users. In these cases, proxy server 124 may add its own suffix domain to URL 110 and may send URL 110 with the suffix domain to identity provider 122. For example, proxy server 124 may add a suffix domain such as http: / / www.xyz.com.suffixproxy.com to the URL. Alternatively, proxy server 124 may act as a return proxy or reverse proxy for device 102.
[0022] After user authentication, identity provider 122 can provide the service provider with some claims that the user has been authenticated. Identity provider 122 can also send a return URL to proxy server 124, and proxy server 124 can transmit the return URL to device 102. The return URL may be the same as or different from the URL sent by proxy server 124 to identity provider 122. In some cases, the service provider may store the URL in the web browser 108's local storage, session storage, cookies, etc., using the URL's domain (e.g., www.xyz.com) before redirecting the URL to identity provider 122. After user authentication, the user logs in to a login page with a suffix domain, such as www.xyz.com.suffixproxy.com. Therefore, the service provider may not be able to read the original URL from where the URL is stored (e.g., local storage, session storage, cookies, etc.).
[0023] The return URL sent by the service provider to the identity provider 122 can be the URL claimed by the identity provider 122; therefore, the return URL can differ from the original URL 110. Some service providers may also pass the original URL 110 (the name of the field may vary in different protocols) from the status field to the identity provider. In these examples, the proxy server may remove / drop the original URL 110 passed to the status field. In any case, the return URL may not include the URL component 111 from the original URL 110.
[0024] Typically, processor 104 can insert the return URL into address bar 112 and navigate to it. Therefore, when web browser 108 is navigated to the return URL, the user can log in to the web page corresponding to the login page for the domain and suffix domain, instead of logging in to the web page 120 corresponding to the URL component 111 listed in the original URL 110. The user may need to navigate through multiple pages to reach the web page corresponding to the URL component 111 listed in the original URL 110. For example, in some cases, when URL component 111 is embedded in multiple pages, navigating through web pages may consume significant time and may cause processor 104 to consume additional resources during the user's page navigation.
[0025] Therefore, omitting URL component 111 from the returned URL during the authentication process, when proxy server 124 is implemented, can lead to inefficiency, particularly in terms of resource and energy consumption of processor 104. According to the example, and as discussed herein, processor 104 can generate a modified URL 130 that may include a suffix field and URL component 111, such that after being redirected by proxy server 124 to identity provider 122, web browser 108 can navigate to web page 120 corresponding to the expected URL component 111.
[0026] like Figure 2 As shown, memory 106 may store machine-readable instructions 200 to 206 that can be executed by processor 104. Although instructions 200 to 206 are described herein as being stored on memory 106 and thus may comprise a set of machine-readable instructions, device 102 may include hardware logic blocks capable of performing functions similar to instructions 200 to 206. For example, processor 104 may include hardware components capable of executing instructions 200 to 206. In other examples, device 102 may include combinations of instructions and hardware logic blocks to implement or perform functions corresponding to instructions 200 to 206. In any of these examples, processor 104 may implement hardware logic blocks and / or execute instructions 200 to 206. As discussed herein, device 102 may also include additional instructions and / or hardware logic blocks such that processor 104 can perform functions other than those described above. Figure 2 Operations other than those discussed or alternatives to those mentioned above Figure 2 The operations discussed.
[0027] Processor 104 can execute instructions 200 to identify a navigation event in response to URL 110 being entered into the address bar 112 of web browser 108. As discussed herein, URL 110 may include a domain and URL component 111. Processor 104 can track web browser 108 to determine when URL 110 is entered into address bar 112, for example, via plugins and / or extensions installed on web browser 108. Furthermore, the navigation event can be any type of event in which URL 110 is appended to address bar 112. In some examples, processor 104 can determine whether the identified navigation event is an event of a predefined type. In these examples, based on the determination that the identified navigation event is an event of a predefined type, processor 104 may, for example, store URL 110 in data storage 140. Data storage 140 may be random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), a storage device, etc. However, since the navigation event based on a determined identifier is not an event of a predefined type, the processor 104 may not store URL 110 and / or may discard URL 110. Furthermore, as discussed herein, the web browser 108 may navigate to URL 110, or the web browser 108 may be redirected by the proxy server 124.
[0028] Predefined event types can include user-controlled events, such as when a user types URL 110 into address bar 112, pastes URL 110 into address bar 112, or follows a link that causes the URL to be entered into the address bar (e.g., from an email, bookmark, etc.). As an example, if the user does not control the event, for example, when the event is redirected to URL 110 by an application (e.g., by JavaScript that automatically redirects to URL 110), the event may not conform to the predefined event type.
[0029] Processor 104 may execute instruction 202 to determine whether web browser 108 has received an instruction to navigate to a returned URL. As discussed herein, the returned URL may include a suffix field for a proxy (e.g., proxy server 124) and may not include URL component 111 listed in URL 110, which may also be referred to herein as the original URL 110. Also as discussed herein, proxy server 124 may receive a request for access to web page 120 corresponding to URL 110 and may add a suffix field to URL 110. Proxy server 124 may also redirect the request to identity provider 122, which may authenticate the user based on information the user may have entered. If authenticated, identity provider 122 may return information, such as a token or other item that the service provider of web page 120 corresponding to URL 110 may use to grant the user access to resources on web page 120. However, since the returned URL may not include URL component 111 included in URL 110, when the proxy server 124 sends the returned URL to the device 102, the web browser 108 may navigate to the login page of the returned URL instead of the page corresponding to URL component 111 listed in URL 110.
[0030] In some examples, processor 104 can determine whether a request is redirected to a predefined identity provider. That is, for example, processor 104 can maintain a list of predefined identity providers. An administrator or other entity can determine which identity providers are included in the predefined list and can update that list over time. In these examples, processor 104 can determine whether the identity provider 122 to which the request is redirected matches one of the predefined identity providers in the predefined list. Furthermore, based on the determination that web browser 108 has navigated to a predefined identity provider 122 included in the predefined list, processor 104 can determine whether web browser 108 has received instructions to navigate to the return URL.
[0031] In some examples, processor 104 can determine whether web browser 108 has navigated to a predefined identity provider within a predefined number of redirects. The predefined number of redirects can be defined by an administrator or other entity and can be counted from the moment web browser 108 initially attempts to navigate to URL 110. As a specific example, the predefined number of redirects could be 5; however, the predefined number can be any number. In these examples, based on the determination that web browser 108 has navigated to a predefined identity provider included in the predefined list of identity providers within the predefined number of redirects, processor 104 can determine whether web browser 108 has received instructions to navigate to the return URL.
[0032] However, if the request is redirected to an identity provider not on the predefined list of identity providers and / or the web browser 108 does not navigate to a predefined identity provider within the predefined number of redirects, the processor 104 may not be certain whether the web browser 108 has received an instruction to navigate to the returned URL. Instead, the processor 104 may not intervene and / or may enable the web browser 108 to navigate to the web page corresponding to the returned URL. In other words, the web browser 108 may navigate to the login page of the returned URL.
[0033] Based on the determination that web browser 108 has received instructions to navigate to the return URL, processor 104 can execute instruction 204 to generate a modified URL 130 by adding a suffix field to URL 110. In other words, processor 104 can add a suffix field to the original URL 110 to generate a modified URL, which restores the context of URL 110 used for proxies (e.g., proxy server 124). Following the example discussed above, processor 104 can generate a modified URL, namely http: / / www.xyz.com.suffixproxy.com / URLcomponent. In this respect, the modified URL may include the domains of the original URL 110, the suffix fields of proxy server 124, and URL component 111 of the original URL 110. As discussed herein, URL 110 may already be stored in data storage 140, and processor 104 can retrieve URL 110 from data storage 140.
[0034] Processor 104 can execute instruction 206 to navigate web browser 108 to the modified URL 130. Since the modified URL 130 may include URL component 111 from the original URL 110, web browser 108 can be directed to web page 120 corresponding to the URL component 111 identified in the original URL 110. As discussed herein, this reduces the resource and energy consumption of processor 104.
[0035] refer to Figure 3 and Figure 4 Methods 300 and 400 are described below, and the various ways in which the processor 104 of device 102 can operate are discussed in more detail below. Specifically, Figure 3 and Figure 4 Flowcharts of methods 300 and 400, according to embodiments of the present disclosure, for navigating a web browser 108 to a modified URL, are depicted respectively, wherein the modified URL may include a suffix field and URL component 111 included in the original URL. It should be understood that methods 300 and 400 may include additional operations, and the operations described herein may be removed and / or modified without departing from the scope of methods 300 and 400. For illustrative purposes, reference is made to... Figure 1 and Figure 2 The features described in the text are used to describe methods 300 and 400.
[0036] First refer to Figure 3 In box 302, processor 104 can determine that a URL 110 for a destination page (e.g., web page 120) has been entered into the address bar 112 of web browser 108. As discussed herein, a plugin or extension may have been installed on web browser 108, and it can determine when URL 110 has been entered into address bar 112. URL 110 may have a domain and URL component 111 (subdirectory) as shown in the following example URL 110, http: / / www.xyz.com / subdirectory. An example of URL 110 including a query string (“lang”) and a fragment portion (“section2”) is: “https: / / xyz.com / sample / help.html?lang=US#section2”.
[0037] In box 304, processor 104 can determine whether web browser 108 has been navigated to predefined identity provider 122 via proxy server 124. As discussed herein, when the user of web browser 108 is to be authenticated before being granted access to web page 120 corresponding to URL 110, proxy server 124 can redirect web browser 108 to identity provider 122. Furthermore, identity provider 122 can be a predefined identity provider if it is on the list of predefined identity providers.
[0038] Based on the determination that web browser 108 has not navigated to a predefined identity provider, at box 304, web browser 108 may navigate to a return URL. That is, for example, when proxy server 124 is used to handle communication to and from web browser 108, as discussed herein, a suffix field may be appended to URL 110. In these cases, web browser 108 may navigate to a return URL that may include the domain of URL 110 and the domain of the suffix field.
[0039] However, based on the determination that web browser 108 has navigated to the predefined identity provider 122, in box 306, processor 104 can determine whether web browser 108 has received an instruction to navigate to the return URL instead of URL 110. As discussed herein, the return URL may include a suffix field but may not include URL component 111.
[0040] Based on the determination that web browser 108 has not received an instruction to redirect to the return URL, in box 308, web browser 108 can navigate to URL 110. That is, for example, proxy server 124 may not have appended a suffix field to URL 110, therefore, web browser 108 can navigate to URL 110, for example, web page 120 corresponding to the subdirectory listed in URL 110.
[0041] However, at box 310, based on the determination that web browser 108 has indeed received instructions to navigate to the returned URL, processor 104 can insert the suffix field of the returned URL into URL 110 to generate a modified URL. Following one of the examples discussed above, processor 104 can generate the modified URL as http: / / www.xyz.com.suffixproxy.com / subdirectory. In this respect, the modified URL may include the domain of the original URL 110, the suffix field of proxy server 124, and URL component 111 from the original URL 110. As discussed herein, URL 110 may already be stored in data store 140, and processor 104 can retrieve URL 110 from data store 140. Furthermore, at box 312, processor 104 can navigate web browser 108 to the modified URL. In other words, web browser 108 can navigate to the web page 120 corresponding to URL component 111.
[0042] Now go to Figure 4 In box 402, processor 104 can determine that URL 110 for the destination page (e.g., web page 120) has been entered into the address bar 112 of web browser 108. In box 404, processor 104 can determine whether the entry for URL 110 is an entry of a predefined type. Based on the determination that the entry for URL 110 is not an entry of a predefined type, in box 406, web browser 108 can navigate to the return URL. However, based on the determination that the entry for URL 110 is an entry of a predefined type, processor 104 can store URL 110 in data storage 140.
[0043] In box 410, processor 104 can determine whether web browser 108 has navigated to predefined identity provider 122 within a predefined number of redirects. Based on the determination that web browser 108 has not navigated to the predefined identity provider or has not navigated to the predefined identity provider within a predefined number of redirects, in box 406, web browser 108 can navigate to the return URL.
[0044] However, based on the determination that web browser 108 navigates to a predefined identity provider within a predefined number of redirects, in box 412, processor 104 may determine whether web browser 108 has received an instruction to navigate to a return URL instead of URL 110. As discussed herein, the return URL may include a suffix field and may not include URL component 111 from the original URL 110.
[0045] Based on the determination that web browser 108 has not received instructions to navigate to the returned URL, at box 414, web browser 108 may navigate to URL 110. However, at box 416, based on the determination that web browser 108 has indeed received instructions to navigate to the returned URL, processor 104 may insert the suffix field of the returned URL into URL 110 to generate a modified URL. Furthermore, at box 418, processor 104 may navigate web browser 108 to the modified URL, for example, to web page 120 corresponding to URL component 111 listed in the original URL 110.
[0046] Some or all of the operations described in each of methods 300 and 400 may be included as tools, programs, or subroutines on any desired computer-accessible medium. Furthermore, each of methods 300 and 400 may be implemented by a computer program, which may exist in various forms, including active and inactive. For example, they may exist as machine-readable instructions, including source code, object code, executable code, or other forms. Any of the above may be implemented on a non-transitory computer-readable storage medium.
[0047] Examples of non-transitory computer-readable storage media include computer system RAM, ROM, EPROM, EEPROM, and magnetic disks / optical disks or magnetic tapes. Therefore, it should be understood that any electronic device capable of performing the functions described above can also perform those functions listed above.
[0048] Now go to Figure 5 The diagram illustrates a block diagram of a computer-readable medium 500 according to an embodiment of the present disclosure. The computer-readable medium 500 may store computer-readable instructions for navigating a web browser 108 to a modified URL, wherein the modified URL may include a suffix field and a URL component 111, causing the web browser to navigate to a web page corresponding to the URL component 111. It should be understood that... Figure 5 The computer-readable medium 500 shown may include additional instructions, and some of the instructions described herein may be removed and / or modified without departing from the scope of the computer-readable medium 500 disclosed herein. The computer-readable medium 500 may be a non-transitory computer-readable medium, wherein the term "non-transitory" does not include transient propagation signals.
[0049] The computer-readable medium 500 may store computer-readable instructions 502 to 508, and a processor (such as...) Figure 1 and Figure 2The processor 104 shown can execute the instructions. The computer-readable medium 500 can be an electronic, magnetic, optical, or other physical storage device that contains or stores the executable instructions. The computer-readable medium 500 can be, for example, random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), storage devices, optical discs, etc.
[0050] The processor can retrieve, decode, and execute instruction 502 to identify a navigation event in response to a Uniform Resource Locator (URL) 110 being entered into the address bar 112 of the web browser 108, the URL 110 having a domain and a URL component 111. The processor can retrieve, decode, and execute instruction 504 to determine whether the web browser 108 has received an instruction to navigate to a return URL instead of URL 110. As discussed herein, the return URL may include a suffix field and may not include the URL component 111 from URL 110. The processor can retrieve, decode, and execute instruction 506 to generate a modified URL based on the determination that the web browser 108 has received an instruction to navigate to the return URL by inserting a suffix field from the return URL into URL 110 while retaining the URL component 111 from URL 110. Furthermore, the processor can retrieve, decode, and execute instruction 508 to navigate the web browser 108 to a web page corresponding to a subdirectory included in the modified URL.
[0051] As discussed herein, the processor can also determine whether the identified navigation event is an event of a predefined type, wherein events of a predefined type may include typing URL 110 into address bar 112, copying URL 110 into address bar 112, and / or following a link that causes URL 110 to be entered into address bar 112. Furthermore, the processor may store URL 110 into data storage 140 based on the fact that the identified navigation event is an event of a predefined type.
[0052] As discussed herein, the processor can determine whether web browser 108 has navigated to a predefined identity provider, and based on the determination that web browser 108 has navigated to predefined identity provider 122, it can determine whether web browser 108 has received an instruction to navigate to the return URL. Alternatively, the processor can determine whether web browser 108 has navigated to predefined identity provider 122 within a predefined number of redirects, and based on the determination that web browser 108 has navigated to predefined identity provider 122 within a predefined number of redirects, it can determine whether web browser 108 has received an instruction to navigate to the return URL.
[0053] Although specific descriptions have been made throughout this disclosure, the representative examples of this disclosure are applicable in a wide range of applications, and the foregoing discussion is not intended to be limiting, but is provided as an illustrative discussion of various aspects of this disclosure.
[0054] The examples described and illustrated herein are examples of this disclosure and some variations thereof. The terminology, descriptions, and figures used herein are set forth by way of illustration only and are not intended to be limiting. Within the scope of this disclosure, many variations are possible, the intent of which is defined by the claims and their equivalents, and unless otherwise stated, all terms are meant in their broadest reasonable sense.
Claims
1. An apparatus for restoring context of a uniform resource locator (URL) for a proxy, comprising: a processor; and a memory having machine-readable instructions stored thereon that cause the processor to: identify a navigation event in response to a URL being received in an address bar of a web browser, the URL having a domain and a URL component, the URL component including at least one of: a subdirectory, a query string, and a URL fragment portion; determine that the web browser received an instruction to navigate to a return URL, the return URL including a suffix domain for a proxy and not including the URL component from the URL; generate a modified URL to restore context of the URL for the proxy by adding the suffix domain to the URL; and navigate the web browser to the modified URL.
2. The apparatus of claim 1, wherein the instructions cause the processor to: determine whether the identified navigation event is a predefined type of event; and based on the identified navigation event being the predefined type of event, store the URL into a data store.
3. The apparatus of claim 2, wherein the predefined type of event includes the URL being typed into the address bar, the URL being pasted into the address bar, and / or a link causing the URL to be entered into the address bar being followed.
4. The apparatus of claim 1, wherein the instructions cause the processor to: determine whether the identified navigation event is a predefined type of event; and based on the identified navigation event not being the predefined type of event, discard the URL.
5. The apparatus of claim 1, wherein the instructions cause the processor to: determine whether the identified navigation event is a predefined type of event; and based on the identified navigation event not being the predefined type of event, navigate to the return URL.
6. The apparatus of claim 1, wherein the instructions cause the processor to: determine whether the web browser navigated to a predefined identity provider; and based on determining that the web browser navigated to the predefined identity provider, determine whether the web browser received the instruction to navigate to the return URL.
7. The apparatus of claim 6, wherein based on determining that the web browser did not navigate to the predefined identity provider, the web browser navigates to the return URL.
8. The apparatus of claim 6, wherein the instructions cause the processor to: determine whether the web browser navigated to the predefined identity provider within a predefined number of redirects; and based on determining that the web browser navigated to the predefined identity provider within the predefined number of redirects, determine whether the web browser received the instruction to navigate to the return URL. 9. The apparatus of claim 8, wherein the web browser is navigated to the return URL based on a determination that the web browser did not navigate to the predefined identity provider within the predefined number of redirects.
10. A method for restoring a context for a uniform resource locator for a proxy, comprising: determining, by a processor, that a URL for a destination page has been received in an address bar of a web browser, the URL including a domain and a URL component, the URL component including at least one of: a subdirectory, a query string, and a URL fragment portion; determining, by the processor, that the web browser navigated to a predefined identity provider through a proxy server; determining, by the processor, that the web browser received an instruction to navigate to a return URL instead of the URL, wherein the return URL includes a suffix domain of the proxy server and does not include the URL component in the URL; and inserting, by the processor, the suffix domain of the return URL into the URL to generate a modified URL; and navigating the web browser to a web page corresponding to the URL component included in the modified URL.
11. The method of claim 10, further comprising: determining whether an entry of the URL into the address bar is a predefined type of entry; and based on the entry of the URL being the predefined type of entry, storing the URL into a data store.
12. The method of claim 11, wherein the predefined type of entry includes the URL being typed into the address bar, the URL being pasted into the address bar, and / or a link causing the URL to be entered into the address bar being followed.
13. The method of claim 11, further comprising: based on a determination that the entry of the URL is not the predefined type of entry, navigating to the return URL.
14. The method of claim 10, further comprising: determining whether the web browser navigated to the predefined identity provider within a predefined number of redirects; and based on a determination that the web browser navigated to the predefined identity provider within the predefined number of redirects, determining whether the web browser received the instruction to navigate to the return URL.
15. The method of claim 14, further comprising: based on a determination that the web browser did not navigate to the predefined identity provider within the predefined number of redirects, navigating to the return URL.
16. The method of claim 10, wherein the return URL does not include the URL component in the URL.
17. A non-transitory computer-readable medium having computer-readable instructions stored thereon that, when executed by a processor, cause the processor to: In response to a uniform resource locator (URL) being received in an address bar of a web browser, the URL having a domain and a URL component, the URL component including at least one of: a subdirectory, a query string, and a URL fragment portion, identifying a navigation event; determining that the web browser received an instruction from a proxy server to navigate to a return URL, wherein the return URL includes a suffix domain and does not include the URL component; and generating a modified URL by inserting the suffix domain into the URL while maintaining the URL component; and navigating the web browser to a web page corresponding to the URL component included in the modified URL.
18. The non-transitory computer-readable medium of claim 17, wherein the instructions further cause the processor to: determine whether the identified navigation event is a predefined type of event, wherein the predefined type of event includes the URL being typed into the address bar, the URL being copied into the address bar, and / or a link causing the URL to be input to the address bar being followed; and based on the identified navigation event being the predefined type of event, store the URL into a data store.
19. The non-transitory computer-readable medium of claim 17, wherein the instructions further cause the processor to: determine whether the web browser navigated to a predefined identity provider; and based on determining that the web browser navigated to the predefined identity provider, determine whether the web browser received the instruction to navigate to the return URL.
20. The non-transitory computer-readable medium of claim 19, wherein the instructions further cause the processor to: determine whether the web browser navigated to the predefined identity provider within a predefined number of redirects; and based on determining that the web browser navigated to the predefined identity provider within the predefined number of redirects, determine whether the web browser received the instruction to navigate to the return URL.
Citation Information
Patent Citations
Network traffic monitoring system and method to redirect network traffic through a network intermediary
US20160044124A1
Dynamic web page navigation
US20170193122A1