CN102082817B - 用于确保用户代理信息传输的方法和设备 - Google Patents

用于确保用户代理信息传输的方法和设备 Download PDF

Info

Publication number
CN102082817B
CN102082817B CN201010563200XA CN201010563200A CN102082817B CN 102082817 B CN102082817 B CN 102082817B CN 201010563200X A CN201010563200X A CN 201010563200XA CN 201010563200 A CN201010563200 A CN 201010563200A CN 102082817 B CN102082817 B CN 102082817B
Authority
CN
China
Prior art keywords
field
url
client
uniform resource
resource locator
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.)
Active
Application number
CN201010563200XA
Other languages
English (en)
Other versions
CN102082817A (zh
Inventor
付岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Oyj filed Critical Nokia Oyj
Publication of CN102082817A publication Critical patent/CN102082817A/zh
Application granted granted Critical
Publication of CN102082817B publication Critical patent/CN102082817B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles

Abstract

提供了一种用于确保用户代理信息传输的方法和设备。所述方法包括:确定类型字段和客户端平台信息字段这两者是否都被包括在接收自远程客户端进程的超文本传输协议(HTTP)请求消息的统一资源定位符字段(URL)的第一部分中。所述第一部分不同于所述URL的域部分。所述类型字段保存这样的数据,该数据指示,所述远程客户端是否将所述客户端信息字段插入到了初始HTTP请求消息的URL中。如果所述类型字段和所述客户端平台信息字段这两者被包括,则基于所述类型字段中的数据,确定是否将所述类型字段和所述客户端平台信息字段这两者都包括在HTTP响应消息中的链接中的URL的第一部分中。所述HTTP响应消息被发送给所述远程客户端进程。

Description

用于确保用户代理信息传输的方法和设备
背景技术
网络服务提供商和设备制造商不断受到为消费者递送价值和便利(通过例如提供引人注目的网络服务)的挑战。从网络服务递送丰富内容的一方面是调整该内容的呈现以适应用户的设备,尤其是用户设备是具有有限显示区域或用户输入机制或带宽的移动终端的情况,例如蜂窝电话。许多内容被使用超文本传输协议(HTTP)递送到桌面计算机,其中,超文本传输协议(HTTP)用于在网络上的服务进程与用户设备上的客户端进程之间交换消息。桌面计算机是通常被赋予了大显示屏、快速网络连接、大存储器和强大处理器的高性能设备。然而,从服务侧递送到客户端的内容应当被修改,用于高效递送以及在通常具有有限的带宽或显示区域或输入机制的移动终端上的有效呈现。由此,HTTP允许HTTP客户端在HTTP消息的报头部分的用户代理字段中指示用户设备的能力(例如制造商、型号和操作系统)。许多网络服务进程基于用户代理字段中的信息对发送给客户端进程的HTTP消息的内容进行调整,以改进用户的服务体验,其中,所述调整例如是通过使内容的最相关或感兴趣部分被更迅速地呈现和更容易地由用户查看,以及将较不相关或感兴趣的其他信息丢弃或归入较少访问的区域。
近来,一些网络运营商对移动设备上的客户端进程与网络上的服务提供商之间的HTTP消息插入了其自己的修改。通过使用称为转码(transcoding)的机制,这些网络运营商通常尝试从服务提供商请求完整HTTP内容,并且针对用户设备对该完整内容进行重新格式化。一般而言,转码改变发送给服务提供商的HTTP报头信息(例如用户代理字段)。由此,在不知道服务提供商所预想的用户体验的情况下,网络运营商影响了用户体验,并且一些服务失效。许多服务提供商感到这是不希望的并且有害。
发明内容
因此,需要一种方案来确保用户代理信息到服务提供商的传输,即使是在网络运营商改变HTTP报头的用户代理字段的情况下。
根据一个实施例,一种方法包括,使类型字段和客户端平台信息字段被插入到来自本地客户端进程的超文本传输协议请求消息的统一资源定位符字段的第一部分。所述第一部分不同于所述统一资源定位符字段的域部分。所述方法还包括,使所述超文本传输协议消息被通过网络发送到由所述域部分寻址的远程服务提供商。所述类型字段保存这样的数据,所述数据指示所述本地客户端进程是否将所述客户端信息字段插入到初始超文本传输协议请求消息的统一资源定位符字段中。
根据另一实施例,一种设备包括至少一个处理器以及至少一个包括计算机程序代码的存储器,所述至少一个存储器和所述计算机程序代码被配置为,通过所述至少一个处理器,至少部分上,引起所述设备使类型字段和客户端平台信息字段被插入到来自所述设备的超文本传输协议请求消息的统一资源定位符字段的第一部分中。所述第一部分不同于所述统一资源定位符字段的域部分。还引起所述设备通过网络将所述超文本传输协议消息发送到由所述域部分寻址的远程服务提供商。所述类型字段保存这样的数据,所述数据指示所述设备是否将所述客户端信息字段插入到初始超文本传输协议请求消息的统一资源定位符字段中。
根据另一实施例,一种携带一个或多个指令的一个或多个序列的计算机可读存储介质,其中,当所述一个或多个指令的一个或多个序列被一个或多个处理器执行时,至少部分上,引起设备使类型字段和客户端平台信息字段被插入到来自本地客户端进程的超文本传输协议请求消息的统一资源定位符字段的第一部分中。所述第一部分不同于所述统一资源定位符字段的域部分。还引起所述设备通过网络将所述超文本传输协议消息发送到由所述域部分寻址的远程服务提供商。所述类型字段保存这样的数据,所述数据指示所述本地客户端进程是否将所述客户端信息字段插入到初始超文本传输协议请求消息的统一资源定位符字段中。
根据另一实施例,一种设备包括:装置,用于使类型字段和客户端平台信息字段被插入到来自本地客户端进程的超文本传输协议请求消息的统一资源定位符字段的第一部分中,其中,所述第一部分不同于所述统一资源定位符字段的域部分。所述设备还包括装置,用于使所述超文本传输协议消息被通过网络发送到由所述域部分寻址的远程服务提供商。所述类型字段保存这样的数据,所述数据指示所述本地客户端进程是否将所述客户端信息字段插入到初始超文本传输协议请求消息的统一资源定位符字段中。
根据一个实施例,一种方法,包括协助对服务的接入,包括授予接入权限。所述服务包括,确定类型字段和客户端平台信息字段是否都被包括在接收自远程客户端进程的超文本传输协议请求消息的统一资源定位符字段的第一部分中。所述第一部分不同于所述统一资源定位符字段的域部分。所述类型字段保存这样的数据,所述数据指示所述远程客户端是否将所述客户端信息字段插入到初始超文本传输协议请求消息的统一资源定位符字段中。所述方法还包括,如果包括了所述类型字段和所述客户端平台信息字段这两者,则基于所述类型字段中的数据,确定是否将所述类型字段和所述客户端平台信息字段这两者包括在超文本传输协议响应消息的有效载荷部分的链接中的统一资源定位符字段的第一部分中。所述服务进一步包括,使所述超文本传输协议响应消息被发送到所述远程客户端进程。
根据另一实施例,一种设备包括至少一个处理器以及至少一个包括计算机程序代码的存储器,所述至少一个存储器和所述计算机程序代码被配置为,通过所述至少一个处理器,至少部分上引起所述设备确定类型字段和客户端平台信息字段这两者是否都被包括在接收自远程客户端进程的超文本传输协议请求消息的统一资源定位符字段的第一部分中。所述第一部分不同于所述统一资源定位符字段的域部分。所述类型字段保存这样的数据,所述数据指示,远程客户端是否将所述客户端信息字段插入到初始超文本传输协议请求消息的统一资源定位符字段中。还引起所述设备在所述类型字段和所述客户端平台信息字段这两者都被包括的情况下,基于所述类型字段中的数据,确定是否将所述类型字段和所述客户端平台信息字段包括在超文本传输协议响应消息的有效载荷部分的链接中的统一资源定位符字段的第一部分中。引起所述设备进一步将所述超文本传输协议响应消息发送到所述远程客户端进程。
根据另一实施例,一种携带一个或多个指令的一个或多个序列的计算机可读存储介质,在被一个或更多处理器执行时至少部分上引起设备:确定类型字段和客户端平台信息字段这两者是否都被包括在接收自远程客户端进程的超文本传输协议请求消息的统一资源定位符字段的第一部分中。所述第一部分不同于所述统一资源定位符字段的域部分。所述类型字段保存这样的数据,所述数据指示,所述远程客户端是否将所述客户端信息字段插入到初始超文本传输协议请求消息的统一资源定位符字段中。还引起所述设备在所述类型字段和所述客户端平台信息字段这两者都被包括的情况下,基于所述类型字段中的数据,确定是否将所述类型字段和所述客户端平台信息字段这两者包括在超文本传输协议响应消息的有效载荷部分中的链接中的统一资源定位符字段的第一部分中。进一步引起所述设备将所述超文本传输协议响应消息发送到所述远程客户端进程。
根据另一实施例,一种设备包括:装置,用于确定类型字段和客户端平台信息字段是否都被包括在接收自远程客户端进程的超文本传输协议请求消息的统一资源定位符字段的第一部分中。所述第一部分不同于所述统一资源定位符字段的域部分。所述类型字段保存这样的数据,所述数据指示,所述远程客户端是否将所述客户端信息字段插入到初始超文本传输协议请求消息的统一资源定位符字段中。所述设备还包括:装置,用于在所述类型字段和所述客户端平台信息字段两者都被包括的情况下,基于所述类型字段中的数据,确定是否将所述类型字段和所述客户端平台信息字段这两者都包括在超文本传输协议响应消息的有效载荷部分中的链接中的统一资源定位符字段的第一部分中。所述设备进一步包括用于将所述超文本传输协议响应消息发送到所述远程客户端进程的装置。
根据另一实施例,一种方法包括,将带有用户代理信息的cookie包括在超文本传输协议请求消息中。根据另一实施例,一种方法包括,将带有用户代理信息的用户专有超文本传输协议报头字段包括在超文本传输协议请求消息中。根据另一实施例,一种方法包括,将带有用户代理信息的已加密的超文本传输协议报头字段包括在超文本传输协议请求消息中。
根据各种其它实施例,一种携带一个或多个指令的一个或多个序列的计算机可读存储介质,当被一个或更多处理器执行时,至少部分上导致一种设备实施所述后三种方法的一个或多个步骤。根据各种其它实施例,一种设备包括用于执行所述后三种方法的一个或多个步骤的装置。根据各种其它实施例,一种设备包括至少一个处理器和至少一个包括计算机程序代码的存储器,所述至少一个存储器和所述计算机程序代码被配置为,通过所述至少一个处理器,至少部分上引起所述设备执行所述后三种方法的一个或多个步骤。
从以下通过示出若干特定实施例和实施方式给出的详细描述中,本发明的其它方面、特征和优势将显而易见,其中,所述实施例和实施方式包括了所设想的用于实现本发明的最佳模式。本发明还能够实现其它的不同实施例,并且其若干细节可以在各种显而易见的方面被修改,而不脱离本发明的精神和范围。相应地,附图和描述应当被看作实际上是示例性的,而非限制性的。
附图说明
附图中作为示例而非限制示例出本发明的实施例,其中:
图1是根据一个实施例的、能够确保到服务提供商的用户代理信息的传输的系统图;
图2A是根据一个实施例的、具有额外客户端平台信息的超文本传输协议(HTTP)请求消息的组成字段图;
图2B是根据一个实施例的、具有额外客户端平台信息的HTTP响应消息的组成字段图;
图2C和图2D是示出根据各种实施例的、用于将客户端平台信息包括在HTTP消息中的URL中的示意性可替换方法的图;
图3是根据一个实施例的、用于确保用户代理信息到服务提供商的传输的客户端进程的流程图;
图4是根据一个实施例的、用于确保用户代理信息到服务提供商的传输的服务器进程的流程图;
图5A直到图5C是示出根据各种实施例、客户端和服务器如何处理可携带客户端平台信息的统一资源定位符(URL)的图;
图6A直到6B是根据各种实施例的、为传输用户代理字段之外的客户端平台信息而交换的消息的时序图;
图7是可用于实现本发明的一个实施例的硬件的图;
图8是可用于实现本发明的一个实施例的芯片组的图;以及
图9是可用于实现本发明的一个实施例的移动终端(例如手机)的图。
具体实施方式
公开了一种用于确保用户代理信息到服务提供商的传输的方法、设备和计算机程序的示例。在以下描述中,出于解释目的,许多特定细节被阐述,以便提供对本发明的实施例的透彻理解。然而对本领域的技术人员显而易见,本发明的实施例可以在没有这些特定细节或通过等效布置的情况下实现。在其它情况下,众所周知的结构和设备以框图形式示出,从而避免不必要地遮蔽本发明的实施例。
计算机进程交互的客户端-服务器模型被广泛地了解和使用。根据客户端-服务器模型,客户端进程向服务器进程发送包括请求的消息,以及服务器进程通过提供服务来响应。服务器进程还可以通过对客户端进程的响应来返回消息。通常,客户端进程和服务器进程运行在被称为主机的不同计算机设备上,并且使用一个或多个用于网络通信的协议经由网络进行通信。术语“服务器”通常用于指提供服务的进程或运行所述进程的宿主计算机。类似地,术语“客户端”通常用于指作出请求的进程或运行所述进程的宿主计算机。除非从上下文中显而易见,否则这里使用的术语“客户端”和“服务器”是指进程而非宿主计算机。另外,出于包括可靠性、可扩展性和冗余等原因,由服务器执行的进程可以被分解为运行在多个主机(有时称为层级)上的多个进程。连接到通信网络的多数节点上可用的众所周知的客户端进程是万维网客户端(被称为“web浏览器”,或简单地称为“浏览器”),其通过根据超文本传输协议(HTTP)格式化的消息,与大量的提供web页面的被称为万维网服务器中的任意服务器交互。
当用在此处时,术语“客户端平台”指客户端进程运行于其中的硬件和软件环境,以及关于客户端类型的信息(例如设备的制造商和型号、设备选项、操作系统、客户端进程是否是浏览器或一些其它应用、以及客户端进程与之交互的其它软件选项)。客户端平台确定显示屏幕和用户用来与客户端进程进行交互的硬件和软件控制,以及要发送到和预期来自客户端进程的信息的类型。客户端平台信息包括描述部分或全部客户端平台的数据。术语“用户代理”指通常用于从客户端进程向服务器进程发送客户端平台信息的超文本传输协议(HTTP)报头中的字段。
尽管相对于在浏览器与万维网服务器之间交换的HTTP消息,描述了各种实施例,但是可理解,此处描述的方法可以作为独立应用或软件对象,例如嵌入在其它应用中的窗口小部件,用于经由HTTP交互的其它客户端和服务器。软件对象是这样的数据结构,其包括描述运行在处理器上的进程的状态的数据,以及包括用于与进程交换数据或改变进程状态的指令。窗口小部件是具有用于与设备的用户交互的图形用户接口的软件对象,并且通常具有用于与远程网络节点上的后端进程交互的应用编程接口。
图1是根据一个实施例的、用于确保向服务提供商的用户代理数据传输的系统100的图。许多移动终端通过预定到网络运营商(例如蜂窝电话服务提供商),来实现对网络的接入。如以上描述的,出于各种原因,这些网络提供商中的一些干预由客户端插入到HTTP报头的用户代理字段中的客户端平台信息。因此,初始插入到用户代理字段中的客户端平台信息没有被可靠地传输到由服务提供商(例如社交网络服务提供商)提供的服务器,其中,所述服务提供商可能不同于且独立于网络运营商。服务器由此不能够正确地对用于客户端进程的客户端平台的服务器内容进行格式化。这可能导致差的用户体验和对服务提供商的反击,包括用户的投诉和用户流失。因此,需要甚至在网络运营商改变或删除HTTP消息中的用户代理字段的情况下,也确保用户代理信息的传输。
为解决该问题,图1的系统100引入将至少一些客户端平台信息插入到不被网络运营商改变的HTTP消息的其它部分(例如统一资源定位符(URL)字段)的能力。在一些实施例中,该客户端平台信息被插入到存储在用户设备处并且被通过请求发送到服务器的cookie中。在一些实施例中,该客户端平台信息被插入到私有HTTP报头字段中,所述私有HTTP报头字段例如是密码,其包含可被服务器但不可被网络运营商解码的已加密数据。在下面示出的实施例中,系统100可以与主动将客户端平台信息引入到HTTP报头中的URL中的经修改的HTTP客户端合作,或者与被动地使用已包括了客户端平台信息的URL的遗留HTTP客户端合作。
如图1中所示,系统100包括用户设备(UE)101,其中,用户设备(UE)101具有经由通信网络105到第一HTTP服务110a和第二HTTP服务110b的连通性。作为示例,系统100的通信网络105包括一个或多个网络,例如数据网络(未示出)、无线网络(未示出)、电话网络(未示出)或其任意组合。可设想数据网络可以是任意局域网(LAN)、城域网(MAN)、广域网(WAN)、公共数据网络(例如互联网)或任意其它合适的分组交换网络,其中,所述分组交换网络例如是商业所有的私有分组交换网络,如私有电缆或光纤网络。另外,无线网络可以是例如蜂窝网络,并且可以利用各种技术,包括增强数据率全球演进(EDGE)、通用分组无线业务(GPRS)、全球移动通信系统(GSM)、互联网协议多媒体子系统(IMS)、通用移动电信系统(UMTS)等,以及任意其它合适的无线介质,例如微波接入全球互通(WiMAX)、长期演进(LTE)网络、码分多址(CDMA)、宽带码分多址(WCDMA)、无线高保真(WiFi)、卫星、移动自组网络(MANET)等。通信网络105的至少一部分103由为UE 101提供移动网络接入的网络运营商来运营。
UE 101是任意类型的移动终端、固定终端或便携式终端,包括移动手机、台站、单元、设备、多媒体计算机、多媒体板、互联网节点、通信器、桌面计算机、膝上电脑、个人数字助理(PDA)或其任意组合。还设想UE 101可以支持任意类型的与用户的接口(例如“可佩戴”电路(wearablecircuitry)等)。在所示实施例中,UE 101是经由无线链路连接到通信网络105的网络提供商部分103的、如下面参考图9详细描述的移动终端。
作为示例,HTTP客户端107,例如UE 101上的浏览器,与HTTP服务110a和110b使用已熟知的、新的或仍然开发中的协议来与彼此以及通信网络105的其它部件进行通信。在该环境中,协议包括一组规则,所述一组规则定义通信网络105内的网络节点如何基于在通信链路上发送的信息来与彼此进行交互。所述协议实施在每个节点内的不同操作层上,从生成和接收各种类型的物理信号,到选择用于传输那些信号的链路,到由那些信号指示的信息的格式化,到识别运行在计算机系统上的哪个软件应用发送或接收所述信息。在开放系统互连(OSI)参考模型中描述了用于基于网络交换信息的概念上的不同协议层。
网络节点之间的通信通常通过交换离散的数据分组来实现。每个分组典型地包括:(1)关联于特定协议的报头信息,以及(2)跟随在报头信息之后并且包括可独立于所述特定协议来处理的信息的有效载荷信息。在一些协议中,分组包括(3)跟随在有效载荷之后并且指示有效载荷信息的结束的尾部信息。报头包括例如分组的源、其目的地、有效载荷的长度以及协议所使用的其它属性的信息。通常,用于特定协议的有效载荷中的数据包括用于与OSI参考模型的不同的、较高层关联的不同协议的报头和有效载荷。用于特定协议的报头通常指示被包含在其有效载荷中的下一个协议的类型。较高层协议被认为被封装在较低层协议中。如由OSI参考模型定义的,被包括在跨越多个异构网络(例如互联网)的分组中的报头通常包括物理(第1层)报头、数据链路(第2层)报头、网络(第3层)报头和传输(第4层)报头以及各种应用报头(第5层、第6层和第7层)。
根据所示的实施例,HTTP服务110a和110b每个都包括服务器侧客户端平台信息传输进程140,以便确保即使HTTP报头的用户代理字段在通信网络105的网络运营商部分103中被改变或移除,客户端平台信息也被从HTTP客户端107传输。在示意性实施例中,HTTP客户端107包括客户端侧用户平台信息传输进程142。在其它实施例中,遗留HTTP客户端进程被使用,客户端侧客户端平台信息传输进程142被省略。已设想,这些进程的功能可以由芯片组、计算机或移动终端来实施,并且可以被并入一个或更多进程中,或由具有等效功能的其它部件来实施。
图2是根据一个实施例的、具有额外客户端平台信息202的超文本传输协议(HTTP)请求消息250的组成图。标准HTTP字段在由互联网工程任务组(IETF)公布在互联网上的HTTP规范中定义。HTTP消息被包括在一个或更多数据分组中,基于封装该HTTP消息的一个或更多低层协议,通过网络(例如网络105)路由所述一个或更多数据分组。HTTP请求消息包括报头部分252和有效载荷部分。报头部分252包括:被用于识别消息的目的地的URL字段260;用户代理字段270;以及零个或更多可选密码字段272,用于保存已加密的报头信息,例如数字签名;以及零个或更多由特定网络应用定义的可选私有报头字段274;以及零个或更多可选cookie字段276。cookie字段276的内容由客户端通过使用被发送到客户端的之前的HTTP响应消息的一组cookie字段来生成。报头252的与本实施例无关的其它字段未被示出,以避免模糊过程操作。
URL字段260包括域字段262,其中,域字段262标识消息的目的地运行在哪个网络节点(例如node.com)和通常还有运行于该节点上的进程类型,例如万维网服务器(例如,在node.com之前附加www.)或图像(例如node.com/image.jpg)或其它应用。可选子域字段264保存这样的数据,所述数据指示将要接收消息的进程所驻留于的网络节点上的目录(如果不是位于节点的最高层的话),例如是/顶层目录名/较低目录名/最深目录名/文件名。如果文件名被留空,则目的节点上的web服务器假定最深目录中的索引文件。如果有一个不出现,则链接是不完整的,将错误通知给发送消息的网络节点。
在一些情况下,接收消息的进程基于接收进程所使用的一个或更多查询参数的值而有区别地运行。此类参数的值在URL的参数字段266中提供,其以问号开始,例如是?first=1234&second=12#$%。
用户代理字段270保存这样的数据,所述数据指示至少部分客户端平台信息。用户代理请求报头字段包含与发起请求的客户端平台(在HTTP规范中被称为用户代理)有关的信息。该信息被用于众多目的中的零个或更多,包括统计目的、协议违反的跟踪,以及用于为避免特定平台限制而对响应进行调整的对客户端平台的自动识别。用户代理字段是可选的,并且应当被包含于HTTP请求,但不被包含于HTTP响应。该字段可以包含多个产品标记和注释,所述产品标记和注释标识客户端平台和构成客户端平台的重要部分的任意子产品。作为惯例,产品标记被按照其对于目的服务器进程的重要性列出。产品标记被用于允许进行通信的应用通过软件名称和版本来标识其自身。多数使用产品标记的字段还允许列出构成应用的重要部分的子产品,以白空间来分隔。可以通过用圆括号包围注释文本,将注释包括在一些HTTP报头字段中。仅在作为其字段值定义的一部分来包含“注释”的字段中允许注释。在所有其它字段中,圆括号被认为是字段值的一部分。文本串如果被用双引号引用的话则被作为单一词来解析。仅在引文串和注释结构中,反斜线字符(“\”)可以被用作单字符引用机制。
用于示例的用户代理字段的示例性内容通过下面的串1来给出:
Mozilla/5.0(Symbian OS/9.2;U;Series60/3.1 NokiaN95/10.0.010;Profile/MIDP-2.0 Configuration/CLDC-1.1)Apple WebKit/413(KHTML,like Gecko)Safari/413(1)
这些内容指示,发送进程是按重要性顺序与Mozilla/5.0、AppleWebKit/413和Safari/413兼容的浏览器。注释在括号中,以及被用于指示客户端平台的进一步特征。SymbainOS/9.2和Series60/3.1指示操作系统和版本。NokiaN95/10.0.010指示设备模型和ROM版本。Profile/MIDP-2.0和Configuration/CLDC-1.1指示设备能够执行Java软件。
HTTP请求消息250的有效载荷部分254对于GET请求为空,但对于POST请求可以包括数据。
根据不同实施例,至少一些客户端平台信息被包括在除用户代理字段270之外的多个HTTP字段的一个HTTP字段中的客户端平台信息字段中。例如,如图2A中所示,客户端平台信息202被包括在子域字段264中的客户端信息字段中。在其它实施例中,客户端平台信息被包括在参数字段266或密码字段272或私有报头字段274或cookie字段276或某组合中。仅一个实施例被示出,以便强调所有感兴趣的客户端信息都可以被插入到单个字段中。在一些实施例中,客户端平台信息不被插入到域字段262中,以便避免与将请求消息250递送到正确的网络节点相干扰。
将客户端平台信息插入到这些字段中所面对的挑战是,使该改变向后兼容于遗留HTTP客户端(例如遗留浏览器)。例如,如果具有型号为N95的蜂窝电话的用户向具有型号为E90的蜂窝电话的另外的用户转发具有客户端平台信息的URL,则所述第二个用户可查看未针对该第二用户的设备进行优化的内容。这被称为链接转发/共享问题。此外,当第一个URL被手工输入时,该方法不可行。例如,用户可在浏览器上输入无格式的URL(plain URL),服务器将在判断添加了什么客户端平台信息时遇到困难。这被称为开始阶段问题。
在一些实施例中,向后兼容性通过使用URL字段中的一个URL字段和除客户端平台信息字段之外还包括类型字段来接近。所述类型字段指示,是已修改的还是遗留的客户端发送了请求。已修改的HTTP客户端可以在不需要来自HTTP服务器的任何帮助的情况下发送信息。然而,如下面详细描述的那样,遗留HTTP客户端使用来自HTTP服务器的一些帮助。来自已修改HTTP客户端的URL具有被称为“主用”(primary)或类型A的类型值;以及,来自遗留HTTP客户端的URL具有被称为“退避”(fallback)或类型B的类型值。由此,类型字段保存这样的数据,所述数据指示,客户端进程是否如由已修改HTTP客户端完成的那样,将客户端信息字段插入到初始HTTP请求消息的URL字段中。遗留HTTP客户端不将客户端信息字段插入到初始HTTP请求消息的URL字段中,而是如下面描述的那样,依赖于服务器引起该字段被插入到初始请求消息之前或之后。
图2B是根据一个实施例的、具有额外客户端平台信息292的HTTP响应消息280的组成的图。响应消息280包括报头部分282和有效载荷部分284。报头部分282包括零个或更多可选的设置cookie字段286以及零个或更多可选的私有报头字段288。设置cookie字段286保存这样的数据,所述数据指示信息将在来自接收该响应消息的客户端进程的随后请求消息的cookie字段276中被返回。
HTTP响应消息280的有效载荷部分284保存将由HTTP客户端呈现在用户设备上的内容,并且包括文本或图像(未示出)或者这两者。也可以包括到具有相关服务的其它服务器的链接,例如所示的链接URL 290a、290b和由省略号指示的其它链接。也可以包括例如表单的脚本,以便通过提供指令来辅助与用户的交互,其中,所述指令将被HTTP客户端或插入到HTTP客户端中的脚本引擎(例如Javascript引擎或ActiveX引擎)来执行。脚本292a和比较脚本292b被示出。由比较脚本292b提供的功能在下面参考图6B进行详细描述。
根据一些实施例,客户端平台信息298或客户端平台信息脚本292b或者这两者被包括在发送到遗留HTTP客户端的HTTP响应消息所包含的链接URL中。在一些其它实施例中,客户端平台信息298被包括在发送到遗留HTTP客户端的HTTP响应消息的设置cookie字段286中。在许多实施例中,这种客户端平台信息298没有被发送到已修改的HTTP客户端。
在一些其它实施例中,客户端平台信息298被包括在发送到HTTP客户端的HTTP响应消息的私有报头字段288中,其中,所述HTTP客户端不是遗留HTTP客户端,而是将私有报头字段288用于该目的的已修改客户端。
图2C和图2D是示出根据不同实施例的、用于将客户端平台信息包括在HTTP消息的URL中的可替换方法的图。图2C示出了被插入到或者在请求消息的报头252部分、或者是响应消息的有效载荷部分284中的HTTP消息的URL中的子域字段210中的类型字段212和客户端平台信息字段214。例如,为在子域字段264中指示Mozilla 5.0兼容性和设备NokiaN95和操作系统SymbianOS 9.2,以下串2
/Mozilla/5.0/NokiaN95/10.0.010/Symbian OS/9.2/    (2)
可以被作为客户端平台信息字段214插入到实际子域(如果有的话)之后的子域字段210中。在其它实施例中,更多或更少的信息被包括在客户端平台信息字段中,或者不同的信息被包括。例如,web服务器对操作系统不太感兴趣,对浏览器版本和设备型号较感兴趣,因此串“SymbianOS/9.2”可以被省略。在一些实施例中,众所周知的最流行用户代理串的列表被定义,以及,仅仅该列表中对应用户代理串的索引被插入到客户端平台信息字段中。如果URL在由已修改HTTP客户端形成的请求报头中,则类型字段212指示主用(类型A)值。如果URL在由HTTP服务器形成的响应有效载荷中,则类型字段212指示退避(类型B)值。通过包括类型字段和客户端平台信息字段这两者,子域字段210具有看起来像串3a或3b的串。
/type=A/Mozilla/5.0/NokiaN95/10.0.010/SymbianOS/9.2/    (3a)
/type=B/Mozilla/5.0/NokiaN95/10.0.010/SymbianOS/9.2/    (3b)
图2D示出了被插入到或者在请求消息的报头252部分,或者是响应消息的有效载荷284中的HTTP消息的URL中的参数字段220中的类型字段222和客户端平台信息字段224。例如,为指示参数字段266中的相同客户端平台信息,以下串4
?Mozilla=5.0&device=NokiaN95/10.0.010&OS=Symbian OS/9.2  (4)
可以被作为客户端平台信息字段224插入参数字段220中。在其它实施例中,如以下描述的那样,更多或更少的信息被包括在客户端平台信息字段中,或者不同的信息被包括。如果URL在由已修改HTTP客户端形成的请求报头中,则类型字段222指示主用(类型A)值。如果URL在由HTTP服务器形成的响应有效载荷中,则类型字段222指示退避(类型B)值。通过包括类型字段和客户端平台信息字段这两者,参数字段220具有看起来像串5a或5b的串。
?type=A&Mozilla=5.0&device=NokiaN95/10.0.010&OS=Symbian OS/9.2
                                                        (5a)
?type=B&Mozilla=5.0&device=NokiaN95/10.0.010&OS=SymbianOS/9.2
                                                        (5b)
尽管由于示例目的而以特定顺序作为整体块示出了消息和字段,但在其它实施例中,一个或更多消息或字段或者其中的若干部分,可以被合并或分隔或以不同顺序出现。
图3是根据一个实施例的、用于确保向服务提供商的用户代理信息传输的客户过程300的流程图。尽管由于示例目的,在图3和随后的流程图图4中以特定顺序示出了步骤,但在其它实施例中,一个或更多步骤或其部分被以不同顺序、或在时间上重叠地实施,被串行或并行地执行,或者一个或更多步骤或其部分被省略,或者一个或更多附加步骤被添加,或者所述流程以一些组合的方式被改变。
在一个实施例中,已修改HTTP客户端107中的客户端侧客户端平台信息传输进程142实施过程300,并且实现在例如图8中所示的包括处理器和存储器的芯片组中、或作为如图9中所示的移动终端的一部分、或这两者。在另一实施例中,遗留HTTP客户端实施图3中所示的步骤的子集,并且被在例如图8中所示的包括处理器和存储器的芯片组中、或作为图9中所示的移动终端的一部分、或作为如图7中所示的计算机来实现。
在步骤301中,确定用于用户代理字段的客户端平台信息。该步骤由发送HTTP请求消息的多数HTTP客户端例行地实现,并且是本领域中众所周知的。由于示例目的,假设客户端平台信息与上面详述的用于形成示例性用户代理串1的相同。
在步骤303中,服务提供商在网络上所提供的服务的URL被接收,其中,所述URL例如是作为之前HTTP响应消息(例如web页面或窗口小部件)、电子邮件、文档、即时消息中的链接,或是作为来自客户端所运行于的设备(例如UE 101)的用户的手工输入。
如由虚线所示的那样,遗留HTTP客户端然后跳到步骤309,在该处,HTTP请求消息250带着如在URL字段260中接收的URL和用户代理字段270中的用户代理串被发送。请求250经受由服务提供商(例如网络部分103的网络运营商)造成的用户代理字段270的丢失。如果客户端平台信息202被包括在被接收并放入字段260中的URL中,那么,如果用户代理字段270丢失或被检测到已被改变,则服务器将依赖于该信息。如果客户端平台信息202没有被包括在被接收并放入字段260中的URL中,那么,如果用户代理字段270丢失或被检测到已被改变,则服务器将不知道客户端平台信息。如下面详细描述的那样,在所示的实施例中,被发送到遗留HTTP客户端的链接URL包括客户端平台信息字段和具有退避值的类型字段。
如果在步骤303中URL在包括脚本的HTTP响应消息中被接收,则脚本在步骤303之前或期间被执行。如果脚本指示客户端将来自用户代理信息的至少一些客户端平台信息包括在请求报头(例如URL字段260或私有报头字段274或密码字段272)中,那么,如果用户代理字段270丢失或被检测到已被改变,则服务器将依赖于该信息。
类似地,如果URL在步骤303中在包括设置cookie字段266的HTTP响应消息中被接收,其中,设置cookie字段266指示cookie参数被设置为一个或更多用户代理参数,那么,在步骤303之前或期间,HTTP请求250将包括具有客户端平台信息的cookie字段276;以及,如果用户代理字段270丢失或被检测到已被改变,则服务器将依赖于该信息。
然而,应当指出,一些URL在HTTP响应消息之外被接收,例如作为电子邮件、即时消息、文档中的链接或手工输入的链接。在所述情况下,既没有脚本也没有cookie来从网络提供商的更改拯救出用户代理字段270中的客户端平台信息。
在步骤309之后,步骤311中确定客户端是否被完成。如果例如因为另一URL在规定时间间隔内被接收而未被完成,则控制回到步骤303,以便接收下一个URL。否则,客户端进程结束。
具有客户端侧客户端平台信息传输进程142的已修改HTTP客户端在步骤309中发送HTTP请求消息之前,还实施步骤305或307中的一个或更多。
在步骤305中,确定被用于用户代理字段的客户端平台信息的子集。所述子集由在步骤303中选择的URL指示的服务使用。例如,如果服务是web服务器,则浏览器兼容性以及设备型号和版本全部都是在所述子集中所期望的。然而,如果特定操作系统功能将被服务使用,则操作系统信息也是期望的。任意方法可以被用于确定该子集。在不同实施例中,指示该子集的数据被作为软件指令中的默认值而被包括、被作为来自本地或远程节点上的管理员的手工输入而接收、被从本地文件或数据库取出、或被响应于查询或主动地从网络上的不同节点发送出,或者,所述数据通过使用这些方法的某种组合而被接收。
在步骤307中,生成具有在不同于用户代理的字段中的客户端平台信息子集的HTTP消息。在一些实施例中,客户端平台信息的子集被包括在针对服务进行格式化的cookie中(即使URL未在具有设置cookie字段的HTTP响应中被接收)。类似地,客户端平台信息的子集被包括在密码字段或私有报头字段中(即使URL未在具有用于产生那些字段的脚本的HTTP响应中被接收)。
在所示的实施例中,客户端平台信息的子集被包括在URL字段260的客户端平台信息字段214或224中,以及,主用值被包括在URL字段260的类型字段212或222中,所述主用值用于指示,已修改的HTTP客户端产生了URL并将其插入发送给服务的初始HTTP请求消息中。该方法的优势在于,消耗较少的资源,以及,比这样的实施例中产生的延迟短,所述实施例依赖于对每个URL执行特殊脚本来向HTTP报头添加附加字段或为每个HTTP请求存储和添加cookie。cookie和脚本这两者通常都涉及去往服务的两个HTTP请求消息加上附加的响应和客户端侧的处理时间。使用URL使得能够在第一HTTP请求消息中传送期望的客户端平台信息。在本实施例中,由已修改HTTP客户端发送的初始HTTP请求消息与由已修改HTTP客户端发送的当前HTTP请求消息相同。
类型A URL(也称为主用URL)包括客户端平台信息字段214或224以及在类型字段中具有主用值的类型字段212或222。类型B URL(也称为退避URL)包括客户端平台信息字段214或224以及在类型字段中具有退避值的类型字段212或222。无格式URL是不具有类型字段或客户端平台信息字段的URL。由此,在所示的实施例中,无论在步骤303中被接收的URL是无格式URL、类型A URL还是类型B URL,已修改的HTTP客户端在步骤307期间总是在HTTP报头中包括类型A URL。然后在步骤309中发送HTTP请求消息。
图4是根据一个实施例的、用于确保向服务提供商的用户代理信息传输的服务器过程400的流程图。在一个实施例中,服务110a或服务110b中的服务器侧客户端平台信息传输进程140实施过程400,并且被例如作为如图8中所示的包括处理器和存储器的芯片组或作为图7中示出的计算机系统或这两者来实现。该过程400对于已修改的和遗留的HTTP客户端这两者都增强客户端平台信息的传输。用于经由cookie或脚本(后者使用URL字段或密码字段或私有报头字段)将客户端平台信息传递给遗留HTTP客户端的步骤被包括。在一些包括所述步骤的实施例中,与修改URL相关的步骤被省略。在所示的仅使用URL的实施例中,与cookie、密码和私有报头字段有关的步骤被省略。
在步骤401中,接收到至少将被发送到遗留HTTP客户端的脚本。任意方法可以被用于接收所述脚本,例如以上针对子集定义所描述的。各种脚本可以被使用,包括用于将客户端平台信息插入到密码或私有报头字段或URL中的脚本。在所示的实施例中,在步骤401中接收到比较脚本,如下面详细描述的那样,所述比较脚本用于将用户代理数据与被从服务器发送到遗留客户端的客户端平台信息字段进行比较并更新该客户端平台信息字段。
在步骤403中,接收到HTTP请求消息(例如消息250)。在步骤405中,确定URL字段(例如字段260)是否被格式化为无格式URL(例如不具有类型和客户端平台信息字段)。如果是这样,则该请求不是来自使用URL字段260来传送客户端平台信息的已修改HTTP客户端,以及控制转到步骤407。
在步骤407中,确定用户代理字段(例如字段270)是否出现(并且不能检测到被更改)。如果是这样,则依赖于用户代理字段中的信息;以及在步骤409中,HTTP有效载荷的内容被基于用户代理字段中的信息(直接或借助于索引间接地)而针对HTTP客户端进行格式化。例如,文本和图像被针对由用户代理字段中的数据指示的移动电话的小型显示屏幕而进行重排。因为网络运营商看来不干预用户代理字段,所以内容中的任何链接被格式化为无格式URL。
在步骤411中,具有链接URL的HTTP响应消息被发送到客户端,其中,所述链接URL是不具有客户端平台信息的无格式URL。在步骤413中,确定服务器侧过程是否被完成,所述完成例如是因为服务正变为离线或服务器的该实例在特定持续时间内还未接收到任何HTTP请求消息。如果未被完成,则控制转回步骤403,以便接收下一个HTTP请求消息。否则,过程结束。
如果在步骤407中确定用户代理字段缺失或可检测到被更改,则在步骤415中确定密码或私有报头或cookie字段是否携带客户端平台信息。如果是这样,则在步骤417中,HTTP有效载荷的内容被基于密码或私有报头或cookie字段中的信息(直接或借助于索引间接地)针对HTTP客户端进行格式化。因为客户端未使用URL来传送客户端平台信息,所以内容中的任何链接被格式化为无格式URL。内容包括任意这样的脚本,所述脚本将发送到遗留HTTP客户端,以导致那些客户端使用对应的密码或私有报头或cookie字段来传送用于用户代理字段的客户端平台信息的至少一个子集。控制然后转到步骤411,以及随后,如以上描述的那样,发送HTTP响应消息和接收下一个HTTP请求消息。在所示的使用URL来传送客户端平台信息的实施例中,步骤415和417被省略。
在一些使用密码或私有报头或cookie来传送客户端平台信息的实施例中,步骤415包括:如果初始HTTP请求不包括携带客户端平台信息的密码或私有报头或cookie字段,则向HTTP客户端发送HTTP响应。在此情况下,假设HTTP客户端是遗留的HTTP客户端,以及HTTP响应包括一组cookie或脚本,所述cookie或脚本导致遗留HTTP客户端将期望的客户端平台信息插入到对应的密码或私有报头或cookie字段中。来自客户端的第二个请求然后应当将期望的客户端平台信息包括在对应字段中。已修改的HTTP客户端将已经自动在对应字段中发送了期望的客户端平台信息。
如果在步骤415中确定密码或私有报头或cookie字段都没有携带客户端平台信息,或者如果步骤415被省略,则在步骤421中,作出从第三方请求客户端平台信息的尝试。许多剥去或更改用户代理字段的网络运营商提供用于提供初始用户代理信息的第三方服务。使用该服务增加延迟和网络资源的消耗,以及对于由客户端发出的每个HTTP请求是不可取的。例如,HTTP客户端被重定向到第三方服务,其中,该第三方服务将来自初始用户代理字段的数据添加到不同字段或新的用户代理字段中,以及然后HTTP客户端被重定向回执行过程400的服务器,这增加两个重定向响应消息和两个请求。然而,在一些实施例中,对于从遗留HTTP客户端接收的第一个HTTP请求消息,第三方服务在步骤421期间被调用。
在一些实施例中,步骤421包括,取代或除将客户端重定向到第三方服务之外,还将客户端重定向到使用HTTPS协议的安全HTTP服务器。HTTPS对一些字段进行加密。网络运营商并不改变HTTPS消息的报头字段,以及由此,用户代理字段无修改地到达HTTPS服务。该服务可以将客户端平台信息添加到cookie、密码字段、私有字段或URL中,以及然后将客户端重定向回例如服务110a的初始服务。被重定向的HTTP请求现在在对应字段中包括所期望的客户端平台信息。该步骤提供这样的优势:即使第三方服务不可用时,也可以使方法步骤运转。其不需要两个例如第三方服务的附加重定向。
在步骤423中,确定客户端平台信息是否被从第三方服务或HTTPS服务接收到。如果不是这样,则在步骤425中,内容被基于最小客户端能力进行格式化,以便确保其可以在任意移动设备中被呈现。在一些实施例中,步骤425包括任意用于导致遗留HTTP客户端更新最小所假设客户端平台信息的脚本。在使用URL来传送所期望客户端平台信息的实施例中,任意链接URL被写为具有客户端平台的所假设值的类型B(退避)URL。
在步骤427中,具有包括服务器发起的客户端平台信息字段的类型B(退避)URL、以及具有可选的用于比较和更新服务器发起的客户端平台信息的比较脚本的HTTP响应消息,被发送到客户端。通过执行比较脚本,HTTP客户端进程被认为初始未将客户端平台信息字段插入到初始HTTP请求消息的URL中。此处所使用的服务器发起的客户端平台信息包括所假设的平台值、从第三方或HTTPS服务返回的值以及从执行服务器所提供的脚本的遗留HTTP客户端返回的值,其中,所述服务器所提供的脚本例如是步骤427中指示的比较脚本。然后控制转到步骤413,以及随后是如以上所描述的。
如果在步骤423中确定,客户端平台信息被从第三方服务或从HTTPS服务接收到,则在步骤429中,内容被基于所接收的用户代理数据进行格式化。在一些实施例中,步骤429包括任意用于导致遗留HTTP客户端更新所接收的客户端平台信息的脚本。在使用URL来传送所期望的客户端平台信息的实施例中,任意链接URL被写成具有第三方所提供的客户端平台信息的类型B(退避)URL。控制转到步骤427,以及随后是如以上所描述的。
如果在步骤405中确定HTTP请求消息不具有无格式URL,例如具有类型A URL或类型B URL,则URL被用于传送客户端平台信息,以及该请求是由具有客户端侧客户端平台信息传输进程142的已修改HTTP客户端发送的,或是由跟随在由服务器侧客户端平台信息传输进程140产生的链接URL之后的遗留HTTP客户端发送的(例如在步骤427中)。
在步骤431中,HTTP有效载荷的内容被直接或借助于索引间接地基于URL字段260的客户端平台信息字段中的信息,针对HTTP客户端进行格式化。例如,文本和图像被针对移动电话的小显示屏幕进行重排,其中,所述移动电话的小显示屏幕由URL字段的参数字段220的客户端平台信息字段224中的数据指示。
在步骤433中,确定类型字段是否指示退避值(类型B)。如果是这样,则任意链接URL被写成类型B URL。具有退避类型URL和可选的比较脚本的HTTP响应消息在步骤427中被发送,以及随后是如以上所描述的。
如果在步骤433中确定类型字段指示主用值(类型A),则因为已修改HTTP客户端不依赖于从服务器接收的客户端平台属性,所以任意链接URL被写成无格式URL。也可以写类型A或类型B URL,但这些类型被已修改HTTP客户端忽略,以及减少用于指示URL的字符的数量是有利的。在步骤413中,如上面描述的那样,确定服务器进程是否已完成。
图5A直到图5C是示出根据不同实施例、客户端和服务器怎样处理可携带客户端平台信息的统一资源定位符(URL)的图。图5A示出了作为遗留HTTP客户端的示例的遗留浏览器510。当遗留浏览器510被运转以请求任何链接URL 512时,遗留浏览器510形成被无改变地定向到相同URL的HTTP请求消息514。例如,选择类型A的链接URL 512a导致遗留浏览器510发送被定向到类型A URL的HTTP请求消息514a。类似地,选择类型B的链接URL 512b导致遗留浏览器510发送被定向到类型BURL的HTTP请求消息514b;以及,选择无格式的链接URL 512c导致遗留浏览器510发送被定向到无格式URL的HTTP请求消息514c。
图5B示出了作为具有客户端侧客户端平台信息传输进程142的已修改HTTP客户端的示例的新浏览器530。当新浏览器530被运转以请求任何链接URL 532时,新浏览器530在每种情况下都形成被定向到类型AURL的HTTP请求消息534。例如,选择类型A的链接URL 532a导致新浏览器530发送被定向到类型A URL的HTTP请求消息534a。然而,选择类型B的链接URL 532b导致新浏览器530发送被定向到类型A URL的HTTP请求消息534b;以及,选择无格式的链接URL 532c导致新浏览器530发送被定向到类型A URL的HTTP请求消息534c。在每种情况下,被插入到URL中的客户端平台信息都是由新浏览器530确定的。如果所选的URL是类型A或类型B,并且包含与所涉及的新浏览器不一致的客户端平台信息,则其将在被发送到服务器的最终重写的类型A URL中被替换为正确信息。
服务器接收到被定向到其URL域的HTTP请求消息,并且返回具有零个或更多链接URL的响应。图5C示出了作为具有服务器侧客户端平台信息传输进程140的HTTP服务器的示例的服务器550。当服务器550被运转以接收被定向到其URL域的HTTP请求消息552时,服务器550形成具有零个或更多链接URL 554的HTTP响应消息。例如,当服务器550被运转以接收被定向到其URL域的具有类型A URL的HTTP请求消息552a时,服务器550形成具有无格式链接URL 554a的HTTP响应消息。当服务器550被运转以接收被定向到其URL域的具有类型B URL的HTTP请求消息552b时,服务器550形成具有类型B链接URL 554b的HTTP响应消息。当服务器550被运转以接收被定向到其无格式URL域的HTTP请求消息552c时,如果其可以推断任何关于客户端平台信息的信息,则服务器550形成具有类型B链接URL 554c的HTTP响应消息。否则,服务器550不返回内容,这由跟随在串“类型B”之后的字符“/-”指示。
图6A直到图6B是根据不同实施例的、为传输用户代理字段外的客户端平台信息而被交换的消息的时序图。在时序图中,时间向下增长,网络上的进程由竖线指示。进程之间的消息由从发送进程指向接收进程的箭头指示。箭头的竖向位置指示相对于其它消息,消息被发送的时间。由一个进程在有限时间内实施的步骤由竖向上延续了步骤的持续时间长度的矩形或弯曲箭头代表。时间未被画成特定比例。
图6A中的过程示出了一个或更多URL源602(例如任意、若干或全部的用户、文档或文件或者基于来自服务器的HTTP响应的web页面或窗口小部件,其中,所述服务器例如是服务110a或遗留服务)。还示出了已修改的HTTP客户端604,所述已修改的HTTP客户端604例如是具有客户端侧客户端平台信息传输进程142的浏览器107。还示出了HTTP服务器606,所述HTTP服务器606例如是具有服务器侧客户端平台信息传输进程140的相同服务110a或不同服务110b。
在消息610中,已修改的HTTP客户端604接收具有一个或更多链接URL的数据。在步骤612中,用户选择具有无格式URL的链接,其中,所述无格式URL指示HTTP服务器606的域。作为响应,已修改HTTP客户端604发送被定向到具有用于客户端604的客户端平台信息的类型A(主用)URL的HTTP请求消息614。作为响应,HTTP服务器返回HTTP响应消息616,其中,所述HTTP响应消息616具有仅无格式的链接以及被针对已修改HTTP客户端604的客户端平台进行调整的内容。
在步骤622中,用户选择这样的链接,所述链接具有指示HTTP服务器606的域的主用(类型A)URL和用于可能不同的已修改HTTP客户端的客户端平台信息。如上面那样,作为响应,已修改HTTP客户端604发送被定向到具有用于客户端604的客户端平台信息的类型A(主用)URL的HTTP请求消息624。作为响应,HTTP服务器返回HTTP响应消息626,其中,所述HTTP响应消息626具有仅无格式的链接和被针对已修改HTTP客户端604的客户端平台进行调整的内容。
在步骤632中,用户选择这样的链接,所述链接具有指示HTTP服务器606的域的退避(类型B)URL以及用于可能不同的遗留HTTP客户端的客户端平台信息。如上面那样,作为响应,已修改HTTP客户端604发送被定向到具有用于客户端604的客户端平台信息的类型A(主用)URL的HTTP请求消息634。作为响应,HTTP服务器返回HTTP响应消息636,其中,所述HTTP响应消息636具有仅无格式的URL和被针对已修改HTTP客户端604的客户端平台进行调整的内容。
由此,对于三种类型的URL,已修改HTTP客户端都将URL重写到具有其自身的客户端平台信息的正确的类型A URL,并且将该URL在HTTP请求消息中发送到服务器。服务器返回根据已编码在类型A URL中的平台信息而针对已修改HTTP客户端进行优化了的内容。去往内容中其它页面的链接是无格式的URL。该实施例的优势在于性能优异——不存在任何用于解析用户代理报头的第三方服务,以及HTTP客户端与HTTP服务器之间不存在任何额外的往返。服务器总是可以返回对于客户端最优的内容。
在图6B中的过程示出了一个或更多URL源602以及HTTP服务器606(如以上所描述的)。还示出了遗留HTTP客户端608,所述遗留HTTP客户端608例如是不具有客户端侧客户端平台信息传输进程142的浏览器。
在消息640中,遗留HTTP客户端608接收具有一个或更多链接URL的数据。在步骤642中,用户选择具有指示HTTP服务器606的域的无格式URL的链接。作为响应,遗留HTTP客户端608发送被定向到不具有任何用于客户端604的客户端平台信息的无格式URL的HTTP请求消息644。作为响应,HTTP服务器返回仅仅带有HTTP响应消息646,所述HTTP响应消息646具有:仅具有基于服务器的最佳估计(例如最小能力或第三方信息)的客户端平台信息的退避(类型B)链接,以及被针对所述估计的客户端平台进行调整的内容。在一些实施例中,响应消息646仅指示没有任何对客户端平台值的合理估计可用,以及服务不能被提供。
在一些实施例中,响应消息646包括脚本,所述脚本确定脚本引擎是否可用于运行比较脚本。例如,脚本确定Javascript引擎是否可用于运行Javescript比较脚本。如果不是这样,则消息指示用户应当安装脚本引擎以获取该站点处的更好服务。如果是这样,则在步骤648中,比较脚本被运行,以便将服务器提供的所估计客户端平台值与客户端至少通过确定用户代理的内容而知道的那些进行比较。用于将遗留客户端重定向到已纠正的类型B URL的示例性Javescript如下。
   <html>
      <head>
        <script id=″checkUserAgent″language=″javascript″>
   <!--
   function checkUserAgent(url){
      if(navigator.userAgent){
          //check whether URL agrees with browser’s user agent,if not,
construct a new Type B URL according to both the URL and the user agent
and redirect the browser to it
          var newURL=buildNewURL(url,navigator.userAgent);
          if(newURL){
             window.location=newURL;
           }
         }
       }
       //-->
            </script>
          </head>
          <body>
      //normal content here.
         </body>
       </html>
在该脚本中,用户代理数据在称为navigator.userAgent的数据结构中,以及从HTTP报头提取的URL在数据结构url中。函数buildNewURL将url中的值与navigator.userAgent中的对应值进行比较。如果其一致,则newURL的值为null。如果不是这样,则newURL的值是已修订的类型BURL,以及客户端被通过命令window.location=newURL重定向到newURL。用于实现buildNewURL的语句可以由本领域的技术人员确定。随后对HTTP响应646中的链接的选择将是具有已基于脚本进行更新的客户端平台信息的类型B URL,所述类型已更新的客户端平台信息更适于实际客户端平台。
由此,当用户在遗留浏览器中选择或输入无格式的URL时,浏览器就将URL按原样发送给服务器。如果HTTP报头中不存在任何用户代理,则服务器不能返回被针对URL进行了优化的内容。服务器可以尝试从第三方服务或使用比较脚本来解析用户代理报头。如果前一种方法成功,则服务器返回与从第三方服务取回的用户代理报头一致的内容。去往内容中的其它页面的链接是具有相同客户端平台信息的类型B URL的格式。如果用户代理报头不能被解析并且比较脚本不能被执行,则服务器可以选择或者针对最小浏览器配置来提供内容,或者显示没有任何进一步继续的信息提示页面。
当用户选择所返回内容中的类型B URL中的任一个时,遗留浏览器将其按原样发送给服务器。尽管当请求到达服务器时用户代理报头仍然是缺失的,但服务器不再尝试从第三方服务来对其进行解析。相反,服务器依赖于已编码在类型B URL中的设备信息来生成针对客户端进行了优化的内容。由于用户代理解析,用户仍然体验到较长等待时间,但这仅是在服务的第一个页面中。这提供了优于现有技术方法的优势,其中,所述现有技术方法在服务器的每个页面上都体验到所述等待时间。
在步骤652中,用户选择具有指示HTTP服务器606的域的主用类型(类型A)URL的链接。作为响应,遗留HTTP客户端608发送被定向到具有用于提供该链接的任何客户端而非遗留客户端608的客户端平台信息的类型A URL的HTTP请求消息654。作为响应,HTTP服务器返回具有仅无格式URL链接的HTTP响应消息656,其中,所述无格式URL链接不具有任何客户端平台信息。通常,用户不输入类型A URL,因为类型A URL对终端用户是透明的。虽然如此,例如在黑客攻击或复制已修改客户端的HTTP请求时,这可以发生。遗留浏览器将类型A URL按原样发送给服务器。服务器返回跟随已编码在类型A URL中的设备信息的内容。显而易见,该内容可以采用不是针对遗留浏览器进行了优化的格式。然而,到内容中的其它页面的链接采用无格式URL的格式。因此,当用户继续浏览时,用户回到以上描述的具有无格式URL的请求消息644,于是,服务器在下一个页面中返回正确的内容变得可能。
在步骤662中,用户选择具有指示HTTP服务器606的域的退避(类型B)URL的链接。作为响应,遗留HTTP客户端608发送被定向到类型B URL的HTTP请求消息664,所述类型B URL具有用于任何提供该链接的客户端(不必要是遗留客户端608)的客户端平台信息。作为响应,HTTP服务器返回具有仅退避(类型B)URL链接的HTTP响应消息656。如果用于已安装引擎的比较脚本被包括,则如上面针对步骤648阐述的那样,遗留客户端在步骤668中基于本地用户代理和类型B URL来更新所选的退避URL。由此,当用户在遗留浏览器中输入类型B URL时,浏览器将URL按原样发送给服务器。服务器返回遵循已编码在类型B URL中的设备信息的内容。去往内容中的其它页面的链接也是类型B URL。有可能已编码在URL中的设备信息与遗留浏览器的实际配置不一致。比较脚本提供对此的补救。最终,遗留浏览器将被逐步淘汰,以及该情况在重要性上将降低。
此处描述的用于确保用户代理信息的传输的过程可以有利地经由软件、硬件(例如通用处理器、数字信号处理(DSP)芯片、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等)、固件或其组合来实现。用于实施所描述的功能的所述示例性硬件在下面详述。
图7示出了计算机系统700,其中,本发明的一个实施例可以在计算机系统700上实现。尽管相对于特定设备或装备示出了计算机系统700,但是可设想图7中的其它设备或装备(例如网络单元、服务器等)可以部署所示的系统700的硬件和部件。计算机系统700被编程(例如经由计算机程序代码或指令),以便像此处描述的那样确保向服务提供商的用户代理信息的传输,并包括通信机制,例如用于在计算机系统700的其它内部和外部部件之间传递信息的总线710。信息(也称为数据)被表示为可测量现象的物理表述,其中,所述可测量现象通常为电压、但在其它实施例中包括例如磁、电磁、压力、化学、生物学、分子、原子、亚原子和量子相互作用的现象。例如,北极和南极磁场或者零和非零电压表示二进制数位(位)的两个状态(0,1)。其它现象可以表示更高基数的数位。测量前的多个同时的量子状态的迭加表示量子位(qubit)。一个或更多数位的序列构成被用于表示数字或字符代码的数字数据。在一些实施例中,被称为模拟数据的信息通过在特定范围内可测量值的连续统(continuum)来表示。计算机系统700或其一部分构成这样的装置,所述装置用于实施确保对服务提供商的用户代理信息传输的一个或更多步骤。
总线710包括一个或多个并行的信息导线,从而信息被快速地在耦合到总线710的设备间传输。用于处理信息的一个或更多处理器702与总线710耦合。
处理器702对信息实施由与确保向服务提供商的用户代理信息传输相关的计算机程序代码指定的操作集合。所述计算机程序代码是指令或提供指令的语句的集合,用于处理器和/或计算机系统的运行,以便实施指定的功能。所述代码例如可以用被编译成处理器的固有指令集的计算机编程语言来书写。所述代码还可以直接使用固有指令集(例如机器语言)来书写。所述操作集合包括从总线710引入信息,以及将信息置于总线710上。所述操作集合通常还包括,例如通过加法或乘法或例如或、异或(XOR)和与的逻辑运算,来将两个或更多信息单元进行比较、转移信息单元的位置以及合并两个或更多信息单元。可以由处理器实施的所述操作集合中的每个操作,都通过被称为指令(例如是一个或多个数位的操作代码)的信息表示给处理器。将由处理器702执行的操作序列(例如操作代码序列)构成处理器指令,该处理器指令也被称为计算机系统指令,或简单地称为计算机指令。处理器可以被单独或组合地实现为机械、电气、磁、光、化学或量子部件等。
在某些上述实施例中,通过如以上所述的在已修改HTTP客户端处的URL重写,在客户端侧解决了链接转发/共享问题和开始阶段问题。这涉及对客户端软件的某种扩展,例如用于Firefox浏览器的Firefox附加软件(Firefox Add-on)。通过这样的扩展,每当用户从客户端请求URL时,扩展首先检查URL是否与客户端的配置一致。如果不是这样,则扩展将URL转换为类型A格式,所述类型A格式中已编码了客户端配置。例如,当用户在N95设备上的新浏览器中输入URL——某站点/路径时,在将URL向外发送到服务器之前,将其转换为某站点/路径?类型=A&设备=N95。服务器用基于已编码在URL中的设备信息进行了优化的内容,响应对类型A URL的请求。然而,在所返回的内容中,去往服务器的所有其它链接不再采用类型A URL的格式,而是采用无格式URL,如某站点/路径/子路径。因此,在浏览器地址字段、已保存的页面书签或页面内容中,端用户通常看不到类型A URL。URL在这些地方总是以无格式URL的格式出现。因此,在多数情况下,远程服务器可以信任已编码在类型A URL中的设备信息的合法性,并响应以正确内容。
遗留浏览器将URL按其原样发送给服务器。在没有用户代理字段的情况下,服务器不能以优化的内容来响应对无格式URL的HTTP请求。然而,一些运营商为服务器提供单独的服务来获取已删除的用户代理字段。此类服务通常具有性能关联因而不适用于所有请求。在解析用户代理之后,服务器将遗留浏览器重定向到新的类型B URL,例如某站点/路径?类型=B&设备=N95的。当已重定向的对于类型B URL的请求再次到达服务器时,服务器用基于已编码在类型B URL中的信息针对设备进行了优化的内容来响应。与类型A URL不同,针对类型B URL请求,服务器还在内容中使用类型B URL用于到服务器的其它链接,例如某站点/路径/子路径?类型=B&设备N95。因此,用户可以在浏览器地址字段中看到类型B URL、将类型B URL保存为书签或在页面内容中找到类型B URL。
服务器对三种类型的URL使用不同策略。对于类型A URL,服务器根据URL中的客户端平台字段生成内容,但内容中的链接是无格式URL。对于类型B URL,服务器也根据URL中的客户端平台字段生成内容;但是,内容中的链接也是类型B URL,而不是无格式URL。对于无格式URL,服务器尝试从第三方服务或HTTPS服务或通过比较脚本,重构用户代理。但是内容中的链接还是类型B URL。如果用户代理数据不能被解析,则服务器返回针对最小浏览器配置的内容,或者简单地返回信息提示页面并不再继续。
计算机系统700还包括耦合到总线710的存储器704。存储器704(例如随机访问存储器(RAM)或其它动态存储设备)存储包括用于确保到服务提供商的用户代理信息传输的处理器指令的信息。动态存储器允许其中所存储的信息被计算机系统700改变。RAM允许存储在称为存储器地址的位置的信息单元独立于相邻地址处的信息地被存储和检索。存储器704还被处理器702用于存储处理器指令执行期间的临时值。计算机系统700还包括耦合到总线710的、用于存储静态信息的只读存储器(ROM)706或其它静态存储设备,其中,所述静态信息包括不被计算机系统700改变的指令。一些存储器由在断电时丢失其上存储的信息的易失性存储设备构成。还耦合到总线710的有非易失性(持久)存储设备708,例如磁盘、光盘或闪存卡,所述非易失性存储设备708用于存储包括甚至当计算机系统700被关掉或断电时也存留的指令的信息。
包括用于确保到服务提供商的用户代理信息传输的指令的信息,被从外部输入设备712提供给总线710以便处理器使用,其中,外部输入设备712例如是包含用户操作的字母数字键的键区(keypad),或传感器。传感器检测其附近的情况,并将那些检测变换为与用于在计算机系统700中表示信息的可测量现象兼容的物理表述。主要用于与人交互的、耦合到总线710的其它外部设备包括:用于呈现文本或图像的显示设备714,例如阴极射线管(CRT)或液晶显示器(LCD)或等离子屏幕或打印机,以及用于控制呈现在显示器714上的小光标图像的位置、发出与呈现在显示器714上的图形单元关联的命令的指示设备716,例如鼠标,或轨迹球,或光标方向键,或运动传感器。在一些实施例中,例如,在计算机系统700在没有人输入的情况下自动实施所有功能的实施例中,外部输入设备712、显示设备714和指示设备716中的一个或多个被省略。
在所示的实施例中,例如专用集成电路(ASIC)720的专用硬件被耦合到总线710。专用硬件被配置为,为特定目的而执行处理器702不能足够快的执行的操作。专用IC的示例包括用来生成用于显示器714的图像的图形加速卡、用于对经由网络发送的消息进行加密和解密的密码板、语音识别以及与特定外部设备的接口,例如机械臂和医学扫描设备(其重复执行一些用硬件实现更为有效的复杂操作序列)。
计算机系统700还包括一个或多个耦合到总线710的通信接口770的实例。通信接口770提供耦合到多种外部设备的单向或双向通信,所述外部设备使用其自己的处理器来运转,例如打印机、扫描器和外部磁盘。一般而言,所述耦合是通过使用连接到本地网780的网络链路778,其中,具有其自己的处理器的多种外部设备连接到本地网780。例如,通信接口770可以是个人计算机上的并行端口或串行端口或通用串行总线(USB)端口。在一些实施例中,通信接口770是提供到对应类型的电话线路的信息通信连接的电话调制解调器,或综合业务数字网(ISDN)卡,或数字订户线路(DSL)卡。在一些实施例中,通信接口770是电缆调制解调器,其将总线710上的信号转换为用于经由同轴电缆的通信连接的信号,或转换为用于经由光缆的通信连接的光信号。作为另一示例,通信接口770可以是提供到兼容LAN(例如以太网)的数据通信连接的局域网(LAN)卡。也可以实现无线链路。对于无线链路,通信接口770发送或接收或者发送并接收携带信息流(例如数字数据)的电、声或电磁信号,包括红外和/或光信号。例如,在无线手持设备中,例如像蜂窝电话的移动电话,通信接口770包括称为无线收发器的无线频带电磁发送器和接收器。在特定实施例中,通信接口770实现了到通信网络105的连接,用来确保从UE 101到服务提供商的用户代理信息的传输。
此处所使用的术语“计算机可读介质”指包括用于执行的指令的、参与向处理器702提供信息的任何介质。此类介质可以采用多种形式,包括但不限于计算机可读存储介质(例如非易失性介质、易失性介质)和传输介质。诸如非易失性介质的非暂时介质包括,例如光或磁盘,如存储设备708。易失性介质包括,例如动态存储器704。传输介质包括,例如同轴电缆、铜线、光缆以及在没有电线或电缆的情况下穿过空间传输的载波,例如声波和电磁波,包括无线电、光或红外波。信号包括在振幅、频率、相位、极性或通过传输介质传输的其它物理属性上的人为瞬时变化。计算机可读介质的常见形式包括,例如软盘、软碟、硬盘、磁带、任意其它磁介质、CD-ROM、CDRW、DVD、任意其它光介质、打孔卡、纸带、光标记表、具有孔图样或其它光可识别标记的任意其它物理介质、RAM、PROM、EPROM、FLASH-EPROM、任意其它存储器芯片或卡带、载波、或计算机可以从其读取的任意其它介质。此处使用的术语计算机可读存储介质指除传输介质之外的任意计算机可读介质。
已编码在一个或更多真实介质中的逻辑包括计算机可读存储介质和专用硬件(例如ASIC 720)中的处理器指令中的一个或这两者。
网络链路778通常提供使用传输介质通过一个或更多网络到其它设备的信息通信,其中,所述其它设备使用或处理所述信息。例如,网络链路778可以提供通过本地网络780到宿主计算机782或到由互联网服务提供商(ISP)运行的设备784的连接。ISP设备784通过现在通常被称为互联网790的公共全球分组交换通信网的网络,提供数据通信服务。
连接到互联网的被称为服务器主机792的计算机,作为宿主具有响应于通过互联网接收到的信息而提供服务的进程。例如,服务器主机792作为宿主具有这样的进程,所述进程提供代表用于在显示器714上呈现的视频数据的信息。设想系统700的部件可以以各种不同的配置部署在其它计算机系统中,例如主机782和服务器792。
本发明的至少一些实施例涉及将计算机系统700用于实现此处描述的技术的一些或全部。根据本发明的一个实施例,那些技术由计算机系统700来执行,以响应于处理器702执行包含在存储器704中的一个或更多个处理器指令的一个或更多序列。也被称为计算机指令、软件和程序代码的所述指令可以被从另一计算机可读介质(例如存储设备708或网络链路778)读入存储器704。包含在存储器704中的指令序列的执行导致处理器702实施此处描述的方法步骤的一个或更多步骤。在可替换实施例中,例如ASIC 720的硬件可以取代或结合软件以便实现本发明。由此,除非此处明确指出,否则本发明的实施例不限于硬件和软件的任意特定组合。
通过通信接口770经由网络链路778和其他网络传输的信号,其携带去往和来自计算机系统700的信息。计算机系统700可以通过网络链路778和通信接口770经由网络780、790等发送和接收包括程序代码的信息。在使用互联网790的示例中,服务器主机792通过互联网790、ISP设备784、本地网络780和通信接口770,发送由发送自计算机700的消息所请求的用于特定应用的程序代码。所接收的代码可以在其被接收时被处理器702执行,或者可以被存储在存储器704或存储设备708或其它非易失性存储中以便稍后执行,或者可以进行这两者。这样,计算机系统700可以获取采用载波上的信号这一形式的应用程序代码。
在将一个或更多个指令序列或数据或者这两者携带到处理器702以便执行时,可涉及各种形式的计算机可读介质。例如,指令和数据可以初始被携带在例如主机782的远程计算机的磁盘上。远程计算机将指令和数据加载到其动态存储器中,以及使用调制解调器通过电话线路发送指令和数据。计算机系统700本地的调制解调器在电话线路上接收指令和数据,并且使用红外发送器将指令和数据转换为充当网络链路778的红外载波上的信号。充当通信接口770的红外检测器接收到被携带在红外信号中的指令和数据,并且将代表指令和数据的信息放置到总线710上。总线710将信息携带到存储器704,其中,处理器702从存储器704检索并使用与指令一起发送的数据中的一部分来执行指令。在704中接收到的指令和数据可选地可以在被处理器702执行之前或之后,存储在存储设备708中。
图8示出了本发明的实施例可以在其上被实现的芯片组800。芯片组800被编程,以便如此处所描述的那样保证到服务提供商的用户代理信息的传输,以及包括例如被并入一个或更多物理包(例如芯片)的关于图7所描述的处理器和存储器部件。作为示例,物理包包括一个或更多材料、部件和/或电线在结构套件(例如基线板)上的布置,用以提供例如物理强度、尺寸保持和/或电气相互作用限制等一个或多个特性。设想在特定实施例中,所述芯片组可以实现在单个芯片中。芯片组800或其一部分构成用于执行确保大盘服务提供商的用户代理信息的传输的一个或更多步骤的装置。
在一个实施例中,芯片组800包括用于在芯片组800的部件之间传递信息的通信机制,例如总线801。处理器803具有到总线801的连接,以便执行存储在例如存储器805中的指令和处理存储在其中的信息。处理器803可以包括一个或更多处理核心,其中,每个核心都被配置为独立地执行。多核处理器实现了单个物理包中的多处理。多核处理器的示例包括两个、四个、八个或更多数量的处理核心。可替换地或除此之外,处理器803可以包括一个或更多微处理器,所述微处理器被配置为,一前一后地经由总线801来实现指令、流水线操作和多线程的独立执行。处理器803可以还附带一个或更多用于实施特定处理功能和任务的专用部件,例如一个或更多数字信号处理器(DSP)807,或者一个或更多专用集成电路(ASIC)809。DSP 807通常被配置为独立于处理器803实时地处理现实世界信号(例如声音)。类似地,ASIC 809可以被配置为实施不容易被通用处理器实施的专用功能。用于辅助实施此处描述的独创功能的其它专用部件包括一个或更多现场可编程门阵列(FPGA)(未示出)、一个或更多控制器(未示出)或者一个或更多其它专用计算机芯片。
处理器803和附带部件具有经由总线801到存储器805的连接。存储器805包括用于存储可执行指令的动态存储器(例如RAM、磁盘、可写光盘等)和静态存储器(例如ROM、CD-ROM等)这两者,其中,所述可执行指令当被执行时实施此处描述的发明步骤,以便确保到服务提供商的用户代理信息的传输。存储器805还存储关联于或由所述发明步骤的执行所生成的数据。
图9是根据一个实施例的、能够在图1的系统中运行的、用于通信的移动终端(例如手机)的示例性部件的图。在一些实施例中,移动终端900或其一部分构成这样的装置,所述装置用于实施确保到服务提供商的用户代理信息的传输的一个或更多步骤。一般而言,无线电接收器通常按照前端和后端特征来定义。接收器的前端包含全部射频(RF)电路,而后端包含全部基带处理电路。当用在本专利申请中时,术语“电路”指这两者:(1)仅硬件实现(例如采用仅模拟和/或数字电路的实现),以及(2)电路和软件(和/或固件)的组合(例如,在适用于特定环境的情况下,包括数字信号处理器的处理器、软件和存储器的组合,其一起运转以引起设备(例如移动电话或服务器)实施各种功能的)。“电路”的该定义适用于该术语在本专利申请中的所有使用,包括在任意权利要求中的使用。作为进一步的示例,当用在本专利申请中以及适用于特定环境的情况下,术语“电路”将还覆盖仅处理器(或多个处理器)及它(或它们)的附带软件/固件的实现。术语“电路”在适用于特定环境的情况下将还覆盖例如移动电话中的基带集成电路或应用处理器集成电路,或者蜂窝网络设备或其它网络设备中的类似集成电路。
电话的相关内部部件包括主控制单元(MCU)903、数字信号处理器(DSP)905以及包括麦克风增益控制单元和扬声器增益控制单元的接收器/发送器单元。主显示器单元907向用户提供显示,以支持各种应用和移动终端功能,其中,所述各种应用和移动终端功能实施或支持确保向服务提供商的用户代理信息的传输的步骤中的一个或更多。显示器907包括显示电路,所述显示电路被配置为显示移动终端(例如移动电话)的用户界面的至少一部分。另外,显示器907和显示电路被配置为辅助对移动终端的至少一些功能的用户控制。音频功能电路909包括麦克风911和放大从麦克风911输出的语音信号的麦克风放大器。已被放大的从麦克风911输出的语音信号被馈入编码器/解码器(CODEC)913。
无线电部分915放大功率并转换频率,以便经由天线917与被包括在移动通信系统中的基站通信。功率放大器(PA)919和发送器/调制电路运行中可对MCU 903作出响应,其中,如本领域中已知的那样,来自PA 919的输出耦合到双工器921或循环器或天线开关。PA 919还耦合到电池接口和功率控制单元920。
使用中,移动终端901的用户向麦克风911说话,他或她的语音与任何检测到的背景噪声一起被转换为模拟电压。模拟电压然后被通过模数转换器(ADC)923转换为数字信号。控制单元903将数字信号选路到DSP905以便在其中进行例如语音编码、信道编码、加密和交织的处理。在一个实施例中,已被处理的语音信号被未单独示出的单元进行编码,其中,所述编码使用例如全球演进(EDGE)、通用分组无线业务(GPRS)、全球移动通信系统(GSM)、互联网协议多媒体子系统(IMS)、通用移动电信系统(UMTS)等的蜂窝传输协议,以及例如微波接入(WiMAX)、长期演进(LTE)网络、码分多址(CDMA)、宽带码分多址(WCDMA)、无线高保真(WiFi)、卫星等的其它任意合适无线介质。
已编码信号然后被选路到均衡器925,以便对穿过空气传输期间发生的任何频率相关衰减(例如相位和振幅失真)进行补偿。在对比特流进行均衡之后,调制器927将信号与RF接口929中生成的RF信号进行合并。调制器927通过频率或相位调制生成正弦波。为了准备传输信号,上变频器931将调制器927输出的正弦波与同步器933生成的另一正弦波合并,以达到期望的传输频率。信号然后被通过PA 919发送,以便将信号增大到合适的功率水平。在实际系统中,PA 919充当可变增益放大器,所述可变增益放大器的增益由DSP 905根据从网络基站接收的信号进行控制。信号然后被在双工器921中进行滤波,并可选地被发送到天线耦合器935,以便匹配用于提供最大功率传输的阻抗。最后,信号被经由天线917发送到本地基站。可以提供自动增益控制(AGC),以便控制接收器的最后阶段的增益。可以从那里将信号转发到远程电话,该远程电话可以是另一蜂窝电话、其它移动电话或者连接到公共电话交换网(PSTN)或其它电话网络的陆上线路。
经由917接收发送到移动终端901的语音信号,该信号立即被低噪声放大器(LNA)937放大。下变频器939降低载波频率,而解调器941剥离RF仅留下数字比特流。信号然后通过均衡器925并被DSP 905处理。全都都在主控制单元(MCU)903——其可以实现为中央处理单元(CPU)(未示出)——的控制下,数模转换器(DAC)943对信号进行转换,以及,产生的输出被通过扬声器945发送给用户。
MCU 903接收包括来自键区947的输入信号的各种信号。键区947和/或MCU 903连同其它用户输入部件(例如麦克风911)一起,包括用于管理用户输入的用户接口电路。MCU 903运行用户接口软件,以辅助对移动终端901的至少一些功能的用户控制,以便确保到服务提供商的用户代理信息的传输。MCU 903还分别将显示命令和切换命令递送到显示器907和语音输出切换控制器。进一步地,MCU 903与DSP 905交换信息,并可以访问可选地被并入的SIM卡949和存储器951。另外,MCU 903执行终端所需的各种控制功能。取决于实施方式,DSP 905可以对语音信号实施各种常规数字处理功能中的任意功能。另外,DSP 905从麦克风911检测到的信号确定本地环境的背景噪声水平,并将麦克风911的增益设置为所选用于对移动终端901的用户的自然趋势进行补偿的水平。
CODEC 913包括ADC 923和DAC 943。存储器951存储包括呼叫到来声音数据的各种数据,并能够存储包括经由例如全球互联网接收到的音乐数据的其它数据。软件模块可以驻留在RAM存储器、闪存器、寄存器或本领域中已知的任意其它形式的可写存储介质中。存储器设备951可以是但不限于单个存储器、CD、DVD、ROM、RAM、EEPROM、光存储或能够存储数字数据的任意其它非易失性存储介质。
可选地被并入的SIM卡949携带,例如重要信息,如蜂窝电话号码、提供服务的承载、订阅详情和安全信息。SIM卡949主要用于在无线网络上标识移动终端901。卡949还包含用于存储个人电话号码簿、文本消息和特定于用户的移动终端设置的存储器。
尽管已结合许多实施例和实现描述了本发明,但本发明不限于此,而是覆盖落在所附权利要求的范围内的各种显而易见的修改和等效布置。尽管在权利要求中以特定组合表述了本发明的特征,但设想这些特征可以以任意组合和顺序来安排。

Claims (20)

1.一种方法,包括:
使类型字段和客户端平台信息字段都被插入到来自本地客户端进程的超文本传输协议请求消息的统一资源定位符字段的第一部分中,其中,所述第一部分不同于所述统一资源定位符字段的域部分;以及
使所述超文本传输协议消息通过网络发送到由所述域部分寻址的远程服务提供商,
其中,所述类型字段保存这样的数据,所述数据指示,所述本地客户端进程是否将所述客户端信息字段插入到初始超文本传输协议请求消息的统一资源定位符字段中。
2.根据权利要求1所述的方法,其中,所述类型字段中的主用值指示,所述本地客户端进程基于所述超文本传输协议消息的用户代理字段部分中的数据,将所述客户端信息字段插入到了所述初始超文本传输协议请求消息的所述统一资源定位符字段中。
3.根据权利要求1所述的方法,其中,所述类型字段中的退避值指示,所述本地客户端进程没有将所述客户端信息字段插入到所述初始超文本传输协议请求消息的所述统一资源定位符字段中。
4.根据权利要求1所述的方法,其中,所述统一资源定位符字段的所述第一部分是所述统一资源定位符字段的子域部分。
5.根据权利要求1所述的方法,其中,所述统一资源定位符字段的所述第一部分是所述统一资源定位符字段的脚本参数部分。
6.根据权利要求3所述的方法,其中,使所述类型字段和所述客户端平台信息字段被插入到所述超文本传输协议请求消息的所述统一资源定位符字段的所述第一部分中进一步包括:在使所述客户端平台信息字段被插入到所述超文本传输协议请求消息之前,执行之前的超文本传输协议响应消息中提供的脚本,以便使所述客户端平台信息字段与所述超文本传输协议请求消息的用户代理字段中的数据一致。
7.一种设备,包括:
用于使类型字段和客户端平台信息字段都被插入到来自所述设备的超文本传输协议请求消息的统一资源定位符字段的第一部分中的装置,其中,所述第一部分不同于所述统一资源定位符字段的域部分;以及
用于使所述超文本传输协议消息通过网络发送到由所述域部分寻址的远程服务提供商的装置,
其中,所述类型字段保存这样的数据,所述数据指示,所述设备是否将所述客户端信息字段插入到初始超文本传输协议请求消息的统一资源定位符字段中。
8.根据权利要求7所述的设备,其中,所述类型字段中的退避值指示,所述设备没有将所述客户端信息字段插入到所述初始超文本传输协议请求消息的所述统一资源定位符字段中。
9.根据权利要求7所述的设备,其中,所述统一资源定位符字段的所述第一部分是所述统一资源定位符字段的脚本参数部分。
10.根据权利要求7所述的设备,其中,使所述类型字段和所述客户端平台信息字段都被插入到所述超文本传输协议请求消息的所述统一资源定位符字段的所述第一部分中进一步包括:在使所述客户端平台信息字段被插入到所述超文本传输协议请求消息中之前,执行在之前的超文本传输协议响应消息中提供的脚本,以便使所述客户端平台信息字段与所述超文本传输协议请求消息的用户代理字段中的数据一致。
11.根据权利要求7所述的设备,其中,所述设备被包含在移动电话中,其中,该移动电话进一步包括:
用户接口电路和用户接口软件,其被配置为,通过使用显示器来协助对所述移动电话的至少一些功能的用户控制,以及被配置为,对用户输入作出响应;以及
显示器和显示电路,其被配置为显示所述移动电话的用户接口的至少一部分,所述显示器和显示电路被配置为协助对所述移动电话的至少一些功能的用户控制。
12.一种包含协助接入服务的方法,其包括授予接入权限,包括:
确定类型字段和客户端平台信息字段是否都被包括在接收自远程客户端进程的超文本传输协议请求消息的统一资源定位符字段的第一部分中,其中,所述第一部分不同于所述统一资源定位符字段的域部分,其中,所述类型字段保存这样的数据,所述数据指示,所述远程客户端是否将所述客户端信息字段插入到了初始超文本传输协议请求消息的统一资源定位符字段中;
如果所述类型字段和所述客户端平台信息字段都被包括,则基于所述类型字段中的数据,确定是否将所述类型字段和所述客户端平台信息字段都包括在超文本传输协议响应消息的有效载荷部分中的链接中的统一资源定位符字段的第一部分中;以及
使所述超文本传输协议响应消息被发送到所述远程客户端进程。
13.根据权利要求12所述的方法,其中,确定是否将所述类型字段和所述客户端平台信息字段都包括在所述超文本传输协议响应消息中进一步包括:如果所述类型字段保存主用值,该主用值指示所述远程客户端进程将所述客户端信息字段被插入到初始超文本传输协议请求消息的统一资源定位符字段中,则确定不将所述类型字段或所述客户端平台信息字段包括在所述超文本传输协议响应消息的所述有效载荷部分中的所述统一资源定位符字段的所述第一部分中。
14.根据权利要求13所述的方法,其中,确定是否将所述类型字段和所述客户端平台信息字段都包括在所述超文本传输协议响应消息中进一步包括:如果所述类型字段保存退避值,该退避值指示,所述远程客户端进程最初没有将所述客户端信息字段插入到初始超文本传输协议请求消息的统一资源定位符字段中,则确定将所述类型字段和所述客户端平台信息字段都包括在所述超文本传输协议响应消息的有效载荷部分中的链接中的统一资源定位符字段的第一部分中。
15.根据权利要求12所述的方法,其中,如果已确定类型字段和客户端平台信息字段都没有被包括在接收自远程客户端的超文本传输协议请求消息的统一资源定位符字段的一部分中,则将所述类型字段和所述客户端平台信息字段都包括在所述超文本传输协议响应消息的所述有效载荷部分中的链接中的统一资源定位符字段的第一部分中,其中,所述类型值保存退避值,该退避值指示,所述远程客户端进程最初没有将所述客户端信息字段插入到所述初始超文本传输协议请求消息的所述统一资源定位符字段中,其中,所述客户端平台信息字段保存这样的数据,该数据指示客户端平台信息由初始不是所述远程客户端进程的一部分进程确定。
16.根据权利要求15所述的方法,其中,如果已确定类型字段和客户端平台信息字段都没有被包括在接收自所述远程客户端的所述超文本传输协议请求消息的所述统一资源定位符字段的第一部分中,则在所述超文本传输协议响应消息中包括脚本,所述脚本使所述远程客户端引起所述客户端平台信息字段与所述超文本传输协议请求消息的用户代理字段中的数据一致。
17.一种设备,包括:
用于确定类型字段和客户端平台信息字段是否都被包括在接收自远程客户端进程的超文本传输协议请求消息的统一资源定位符字段的第一部分中的装置,其中,所述第一部分不同于所述统一资源定位符字段的域部分,其中,所述类型字段保存这样的数据,所述数据指示,所述远程客户端是否将所述客户端信息字段插入到了初始超文本传输协议请求消息的统一资源定位符字段中;
用于如果所述类型字段和所述客户端平台信息字段都被包括,则基于所述类型字段中的数据,确定是否将所述类型字段和所述客户端平台信息字段都包括在超文本传输协议响应消息的有效载荷部分中的链接中的统一资源定位符字段的第一部分中的装置;以及
用于使所述超文本传输协议响应消息被发送到所述远程客户端进程的装置。
18.根据权利要求17所述的设备,其中,确定是否将所述类型字段和所述客户端平台信息字段都包括在所述超文本传输协议响应消息中进一步包括:如果所述类型字段保存主用值,该主用值指示所述远程客户端进程将所述客户端信息字段被插入到初始超文本传输协议请求消息的统一资源定位符字段中,则确定不将所述类型字段或所述客户端平台信息字段包括在所述超文本传输协议响应消息的所述有效载荷部分中的链接中的所述统一资源定位符字段的所述第一部分中。
19.根据权利要求17所述的设备,其中,确定是否将所述类型字段和所述客户端平台信息字段都包括在所述超文本传输协议响应消息中进一步包括:如果所述类型字段保存退避值,该退避值指示,所述远程客户端进程最初没有将所述客户端信息字段插入到初始超文本传输协议请求消息的统一资源定位符字段中,则确定将所述类型字段和所述客户端平台信息字段都包括在所述超文本传输协议响应消息的有效载荷部分的链接中的统一资源定位符字段的第一部分中。
20.根据权利要求17所述的设备,其中,所述设备进一步包括用于如果已确定类型字段和客户端平台信息字段都没有被包括在接收自远程客户端的超文本传输协议请求消息的统一资源定位符字段的一部分中,则将所述类型字段和所述客户端平台信息字段都包括在所述超文本传输协议响应消息的所述有效载荷部分中的链接中的统一资源定位符字段的第一部分中的装置,其中,所述类型值保存退避值,该退避值指示,所述远程客户端进程最初没有将所述客户端信息字段插入到所述初始超文本传输协议请求消息的所述统一资源定位符字段中,其中,所述客户端平台信息字段保存这样的数据,该数据指示客户端平台信息由初始不是所述远程客户端进程的一部分进程确定。
CN201010563200XA 2009-11-25 2010-11-25 用于确保用户代理信息传输的方法和设备 Active CN102082817B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/626,418 2009-11-25
US12/626,418 US8407351B2 (en) 2009-11-25 2009-11-25 Method and apparatus for ensuring transport of user agent information

Publications (2)

Publication Number Publication Date
CN102082817A CN102082817A (zh) 2011-06-01
CN102082817B true CN102082817B (zh) 2013-11-13

Family

ID=44062456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010563200XA Active CN102082817B (zh) 2009-11-25 2010-11-25 用于确保用户代理信息传输的方法和设备

Country Status (2)

Country Link
US (2) US8407351B2 (zh)
CN (1) CN102082817B (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10091535B2 (en) * 2010-11-16 2018-10-02 The Directv Group, Inc. System and method for sharing television programming information using universal identifier
US8909697B2 (en) 2010-11-29 2014-12-09 Hughes Network Systems, Llc Computer networking system and method with javascript execution for pre-fetching content from dynamically-generated URL and javascript injection to modify date or random number calculation
US9235455B2 (en) * 2011-03-16 2016-01-12 Microscan Systems, Inc. Multi-core distributed processing using shared memory and communication link
JP5779790B2 (ja) * 2011-05-26 2015-09-16 東日本電信電話株式会社 クライアント推定装置、クライアント推定方法及びコンピュータプログラム
US9832795B2 (en) * 2011-07-28 2017-11-28 Telefonaktiebolaget L M Ericsson (Publ) Client interface script based user communication in a mobile network
CN103220371B (zh) * 2012-01-18 2016-03-02 中国移动通信集团公司 内容适配方法及系统
CA3166669A1 (en) * 2014-07-10 2016-01-14 Fasetto, Llc Systems and methods for message editing
CN104602222B (zh) * 2014-12-24 2019-04-26 联想(北京)有限公司 一种信息处理方法和电子设备
US20160270020A1 (en) * 2015-03-13 2016-09-15 Intel IP Corporation Secure device provisioning of wi-fi devices in a multi-domain environment
CN106330520A (zh) * 2015-07-02 2017-01-11 中兴通讯股份有限公司 一种终端设备的特征信息的提取方法及装置
RU2697941C1 (ru) * 2015-10-30 2019-08-21 Телефонактиеболагет Лм Эрикссон (Пабл) Управление защитой целостности блока пакетных данных управления логическим каналом
US10534791B1 (en) 2016-01-31 2020-01-14 Splunk Inc. Analysis of tokenized HTTP event collector
US11093476B1 (en) * 2016-09-26 2021-08-17 Splunk Inc. HTTP events with custom fields
US10813169B2 (en) 2018-03-22 2020-10-20 GoTenna, Inc. Mesh network deployment kit
CN108712309B (zh) * 2018-06-11 2022-03-25 郑州云海信息技术有限公司 一种微服务架构下的微服务节点防护方法和系统
US10831836B2 (en) 2018-07-26 2020-11-10 Palo Alto Networks, Inc. Browser storage for clientless VPN
US11093574B2 (en) 2018-07-26 2021-08-17 Palo Alto Networks, Inc. Encoding-free javascript stringify for clientless VPN
US10951588B2 (en) 2018-07-26 2021-03-16 Palo Alto Networks, Inc. Object property getter and setter for clientless VPN
US10592388B1 (en) * 2018-09-26 2020-03-17 Jpmorgan Chase Bank, N.A. Methods for facilitating more efficient network message exchange and analysis and devices thereof
CN109413714B (zh) * 2018-10-12 2022-02-22 Oppo广东移动通信有限公司 用户代理信息的处理方法、装置、存储介质及终端
US11128459B2 (en) * 2018-11-28 2021-09-21 Its, Inc. Mitigating service disruptions in key maintenance
CN109656205B (zh) * 2018-12-11 2020-11-24 Oppo(重庆)智能科技有限公司 不良品的管控方法和装置、电子设备、可读存储介质
CN111062684B (zh) * 2019-11-29 2023-10-20 普元信息技术股份有限公司 云流程平台下实现业务数据与流程数据一致性处理的系统及其方法
US11936763B2 (en) * 2020-10-28 2024-03-19 International Business Machines Corporation Handling deferrable network requests
CN112532712B (zh) * 2020-11-24 2023-03-28 青岛海尔科技有限公司 协议发送方法及装置、存储介质、电子装置
CN114625434B (zh) * 2020-12-10 2024-04-23 华为技术有限公司 地址获取方法和设备
US11789597B2 (en) * 2021-01-25 2023-10-17 Microsoft Technology Licensing, Llc Systems and methods for storing references to original uniform resource identifiers
CN114339630B (zh) * 2021-11-30 2023-07-21 度小满科技(北京)有限公司 一种用于短信保护的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117227B2 (en) * 1998-03-27 2006-10-03 Call Charles G Methods and apparatus for using the internet domain name system to disseminate product information
CN101401118A (zh) * 2006-03-06 2009-04-01 雅虎公司 通过移动设备来送达广告的系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732219A (en) * 1995-03-17 1998-03-24 Vermeer Technologies, Inc. Computer system and computer-implemented process for remote editing of computer files
US6484149B1 (en) * 1997-10-10 2002-11-19 Microsoft Corporation Systems and methods for viewing product information, and methods for generating web pages
US20030110234A1 (en) 2001-11-08 2003-06-12 Lightsurf Technologies, Inc. System and methodology for delivering media to multiple disparate client devices based on their capabilities
JP4007596B2 (ja) 2003-02-25 2007-11-14 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ及びプログラム
US7103681B2 (en) 2003-06-19 2006-09-05 Nokia Corporation System for rendering multimedia messages by providing, in a multimedia message, URL for downloadable software to receiving terminal
EP1678911A1 (en) 2003-09-29 2006-07-12 Mobilitec, Inc. Service platform for cellular telephony
US7478146B2 (en) 2003-11-03 2009-01-13 Nokia Corporation System, apparatus, and method for communicating capabilities of a mobile device
US20050138137A1 (en) * 2003-12-19 2005-06-23 Microsoft Corporation Using parameterized URLs for retrieving resource content items
DE102004003593B4 (de) 2004-01-15 2016-05-12 Deutsche Telekom Ag Verfahren zur Übermittlung von benutzerspezifischen Daten auf der Basis des WAP- oder HTML-Protokolls
US8515918B2 (en) * 2005-10-21 2013-08-20 Kevin R. Borders Method, system and computer program product for comparing or measuring information content in at least one data stream
US7783613B2 (en) 2006-02-03 2010-08-24 Infosys Technologies Ltd. Context-aware middleware platform for client devices
US7702317B2 (en) 2006-04-27 2010-04-20 M:Metrics, Inc. System and method to query wireless network offerings
CN101087205A (zh) 2006-06-07 2007-12-12 华为技术有限公司 上报用户代理档案信息的方法、系统及终端设备
WO2008072093A2 (en) * 2006-12-13 2008-06-19 Quickplay Media Inc. Mobile media platform
FR2918527A1 (fr) 2007-07-02 2009-01-09 France Telecom Procede et dispositif d'insertion d'une adresse dans une requete
US7925694B2 (en) * 2007-10-19 2011-04-12 Citrix Systems, Inc. Systems and methods for managing cookies via HTTP content layer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117227B2 (en) * 1998-03-27 2006-10-03 Call Charles G Methods and apparatus for using the internet domain name system to disseminate product information
CN101401118A (zh) * 2006-03-06 2009-04-01 雅虎公司 通过移动设备来送达广告的系统

Also Published As

Publication number Publication date
CN102082817A (zh) 2011-06-01
US8769125B2 (en) 2014-07-01
US8407351B2 (en) 2013-03-26
US20130124680A1 (en) 2013-05-16
US20110124319A1 (en) 2011-05-26

Similar Documents

Publication Publication Date Title
CN102082817B (zh) 用于确保用户代理信息传输的方法和设备
CN102687487B (zh) 用于提供客户端高速缓存的方法和设备
CN105190621B (zh) 用于内容的异步分发的方法和装置
CN101505317B (zh) 流式媒体中断与恢复系统
US9639619B2 (en) Network architecture and method for reducing the number of resource requests
CN1575461B (zh) 约定web服务的移动客户机
CN103067423B (zh) 浏览器内核适配的方法和浏览器
US11356533B2 (en) Facilitation of efficient web site page loading
CN103581706B (zh) 智能电视的应用安装方法和系统
CN102939579A (zh) 绑定用户接口元素和粒度反映处理的方法和装置
RU2524394C2 (ru) Способ и устройство для конфигурирования представления справочников услуг
CN103907113A (zh) 用于分布式脚本处理的方法和装置
JP2009087361A (ja) コンポーネントベースの無線アプリケーションを作成して同アプリケーションと通信するためのシステム及び方法
CN102349278B (zh) 用于按需内容映射的方法及设备
CN102947827A (zh) 生成协作播放列表的方法和装置
CN102763397A (zh) 用于提供认证会话共享的方法和装置
CN102349314B (zh) 基于用户地理位置来访问内容的方法和装置
CN103907329A (zh) 用于实现离线web应用执行的方法和装置
CN103003797A (zh) 用于分配计算闭包的方法和装置
CN104541262A (zh) 用于富因特网应用的透明网络内适配的系统和方法
CN103703741B (zh) 应用程序分发方法、终端及服务器
CN105611422A (zh) 基于多媒体榜单的在线直播方法及装置
US10332071B2 (en) Solution for adding context to a text exchange modality during interactions with a composite services application
KR100749845B1 (ko) 모바일 액티브 페이지 기능을 제공하는 이동 단말 및 그의무선 인터넷 서비스 제공 방법
CN104717131A (zh) 信息交互方法及服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160215

Address after: Espoo, Finland

Patentee after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Patentee before: Nokia Oyj