访问方法、web缓存代理系统及电子设备与流程

文档序号:28085877发布日期:2021-12-18 02:01阅读:65来源:国知局
1.本发明实施例涉及通信
技术领域
:,特别涉及一种访问资源的方法、web缓存代理系统及电子设备。
背景技术
::2.web缓存服务器可以提升页面访问速度,节省带宽资源,但是,在web缓存服务器作为正向代理的应用场景中,由于无法获知用户https(hypertexttransferprotocoloversecuresocketlayer)请求中的具体内容,因此无法为该类用户提供缓存加速服务,从而无法节省带宽资源,也无法提升用户的访问速度。技术实现要素:3.本发明实施方式的目的在于提供一种访问方法、web缓存代理系统及电子设备,使得可以响应客户端发起的资源的https请求。4.为解决上述技术问题,第一方面,本发明实施例提供了一种访问方法,应用于包含代理模块和缓存模块的web缓存代理系统,包括:代理模块与客户端建立安全套接层协议层(securesocketslayer,ssl)连接,基于ssl连接接收客户端发起的第一https请求,并解析第一https请求,以获取请求资源信息;基于请求资源信息生成重定向响应,并反馈重定向响应至客户端,重定向响应指示客户端基于请求资源信息发起http请求;代理模块转发http请求至缓存模块,使得缓存模块基于http请求反馈资源。5.第二方面,本发明实施例提供了一种web缓存代理系统,包括:代理模块和缓存模块;代理模块用于:与客户端建立安全套接层协议层ssl连接,基于ssl连接接收客户端发起的第一https请求,并解析第一https请求,以获取请求资源信息;基于请求资源信息生成重定向响应,并反馈重定向响应至客户端,重定向响应指示客户端基于请求资源信息发起http请求;转发http请求至缓存模块;缓存模块用于:基于http请求反馈资源。6.第三方面,本发明实施例提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例提及的访问方法。7.本发明实施例相对于现有技术而言,代理模块与客户端建立ssl连接,并在接收到https请求时,提供解析https请求得到请求资源信息,并将请求资源信息反馈至客户端,以使客户端基于请求资源信息发起http请求,从而将https请求降级为http请求。由于https请求降级为http请求,使得web缓存代理系统能解析明文的http请求,返回http请求对应的资源的缓存。附图说明8.一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。9.图1是本技术实施例的访问方法的流程图;10.图2是本技术另一实施例的访问方法的流程图;11.图3是本技术又一实施例的访问方法的流程图;12.图4是本技术实施例的客户端、传输层代理服务器、应用层代理服务器、缓存服务器和源站服务器之间的交互示意图;13.图5是本技术实施例的客户端、传输层代理服务器、应用层代理服务器、缓存服务器和源站服务器之间通过代理协议传递目的端口的过程示意图;14.图6是本技术实施例中web缓存代理系统的结构示意图;15.图7是本技术实施例的电子设备的结构示意图。具体实施方式16.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本技术而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本技术所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。17.在本发明公开的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。18.本技术实施例提供了一种访问方法,应用于包含代理模块和缓存模块的web缓存代理系统,如图1所示,包括如下步骤。19.步骤101:代理模块与客户端建立ssl连接,基于ssl连接接收客户端发起的第一https请求,并解析第一https请求,以获取请求资源信息。20.步骤102:代理模块基于请求资源信息生成重定向响应,并反馈重定向响应至客户端;重定向响应指示客户端基于请求资源信息发起http请求。21.步骤103:代理模块转发http请求至缓存模块,使得缓存模块基于http请求反馈资源。22.本技术实施例中,代理模块与客户端建立ssl连接,并在接收到https请求时,提供解析https请求得到请求资源信息,并将请求资源信息反馈至客户端,以使客户端基于请求资源信息发起http请求,从而将https请求降级为http请求。由于https请求降级为http请求,使得web缓存代理系统能解析明文的http请求,返回http请求对应的资源的缓存。23.在实施中,请求资源信息可以是统一资源定位系统(uniformresourcelocator,url),例如,www.abc.com。以客户端向www.abc.com发起https请求为例,客户端浏览器在发出https请求:https://www.abc.com/之前,先请求与源站服务器建立ssl连接,该ssl连接请求在到达源站服务器之前,先经过代理模块;当代理模块接收到客户端浏览器发起的ssl连接请求时,可基于伪证书与客户端浏览器建立ssl连接。24.客户端浏览器基于建立的ssl连接,发出https请求:https://www.abc.com/,代理模块基于该ssl连接,接收该https请求,并可对其进行解析以获取请求资源信息://www.abc.com/。25.而后代理模块基于该请求资源信息构造重定向响应(302响应)反馈给客户端浏览器,其中,302响应包含指示客户端浏览器发出http请的指令:location:http://www.abc.com/。26.客户端浏览器收到302响应后,会根据定位(location)向www.abc.com/发出http请求,即http://www.abc.com/。27.代理模块在接收到该http请求后,转发至缓存模块,以向缓存模块请求http://www.abc.com/对应的资源,并反馈给客户端。28.在一个实施例中,在代理模块转发http请求至缓存模块之后,还包括:缓存模块确定是否已缓存有对应的资源,若确定缓存中存在http请求对应的资源,则可直接通过代理模块反馈资源至客户端;若确定缓存中不存在http请求对应的资源,则向提供对应资源的源站服务器请求资源,通过代理模块反馈资源至客户端,并缓存资源。在一实施中,代理模块在转发http请求至缓存模块时,同时将客户端浏览器发出的https请求中包含的目的地址及端口同步给缓存模块,以使缓存模块可直接向该目的ip和端口指向的源站服务器请求资源。在另一实施中,缓存模块可直接基于http请求中的域名解析获得提供请求资源的源站服务器的地址信息,并基于域名解析结果向对应的源站服务器请求资源。29.在一个实施例中,代理模块转发http请求至缓存模块,包括:为http请求添加第一头部,第一头部指示http请求的原始协议类型为https;将添加第一头部后的http请求发送至缓存模块;对应的,缓存模块向源站服务器请求资源,包括:若确定http请求中存在第一头部,将http请求转换为第二https请求;发送第二https请求至源站服务器;若确定http请求不存在第一头部,发送http请求至源站服务器,具体而言,第一头部可以是x‑cdn‑ssl头部,以标记该http请求原本为https请求,第一头部也可以是其他形式的信息,本实施例仅为举例说明。本实施例中,代理模块为由https请求降级得到的http请求添加第一头部,以标记客户端向源站服务器发起原始请求为https请求,缓存模块根据接收到的http请求中是否包含第一头部以确认是否需要向源站服务器发起https请求,以避免向仅支持https协议的源站服务器发起http请求,导致回源失败。30.在一个实施例中,缓存模块通过代理模块反馈资源至客户端,包括:缓存模块发送资源至代理模块;代理模块获取资源,并将资源中的https链接修改为http链接;将修改后的资源反馈至客户端。本实施例中,代理模块收到缓存模块反馈的资源后,将资源中的https链接修改为http链接,使得客户端在接收到反馈资源后,若用户需要针对反馈资源中的链接内容进一步发起访问请求,那么客户端浏览器将以http请求方式发起后续子请求,并被代理模块接收并进行后续的缓存代理。31.在一个实施例中,在代理模块反馈重定向响应至客户端之前,还包括:代理模块获取第一https请求的目的端口信息;若确定第一https请求的目的端口信息指示第一https请求的目的端口不是指定端口(指定端口如443),在重定向响应的location头部中添加目的端口信息,使得客户端向location头部中添加目的端口信息发起http请求,代理模块在接收到该http请求时,确定该http请求的目的端口为非指定端口,则可在转发该http请求至缓存模块时,在转发的http请求中携带该目的端口。本实施例中,代理模块在反馈重定向响应时,将https请求中的非指定目的端口信息一并反馈给客户端,使得客户端浏览器在基于重定向响应发起http请求时,请求目的端口为该重定向响应中指示的目的端口信息,从而使得代理模块可以从客户端浏览器向源站服务器发起的http请求中,直接获取非指定目的端口,以传递给缓存模块,从而无需设置本地记录来保存该非指定端口即可避免目的端口丢失。32.需要说明的是,本领域技术人员可以理解,代理服务器还可以通过其他方式将目的端口信息反馈给客户端,使得客户端在http请求中携带该目的端口,本实施例仅为举例说明。33.在一个实施例中,代理模块转发http请求至缓存模块,包括:代理模块接收http请求,并为http请求添加第二头部,第二头部包括目的端口信息;缓存模块向源站服务器请求资源,包括:缓存模块识别http请求的第二头部中携带的目的端口信息;通过源站服务器的与目的端口信息对应的端口,向源站服务器请求资源。本实施例中,代理模块在接收到由https请求降级得到的http请求后,在http请求的头部添加https请求中的目的端口信息,使得该http请求转发至缓存模块后,缓存模块可以基于http请求的第二头部中携带的目的端口信息向源站服务器正常回源,使得缓存模块能够正常服务不同目的端口的https请求,解决目的端口丢失问题,提升访问速度并节省回源带宽。34.在一个实施例中,代理模块包括客户代理子模块和缓存代理子模块,客户代理子模块分别与客户端和缓存代理子模块建立tcp连接,并基于tcp连接将客户端发送的ssl连接请求转发至缓存代理子模块,使得缓存代理子模块基于ssl连接请求与客户端建立ssl连接。35.可选择的,客户代理子模块与客户端建立tcp连接的过程包含:客户代理子模块拦截客户端向源站服务器发送的tcp连接请求,并伪装成源站服务器与客户端建立tcp连接。36.具体地,在客户端与缓存模块之间设置有两层代理服务,客户端通过客户代理子模块和缓存代理子模块与缓存模块通信连接。其中,客户代理子模块可以是传输层代理服务,主要实现传输层透明代理服务,实现智能选路,引导数据流量。缓存代理子模块可以是应用层代理服务,主要与客户端进行ssl连接,并在应用层完成重定向和资源修改任务。简而言之,客户代理子模块进行传输层数据的分发,缓存代理子模块进行应用层的服务。37.本实施例中,缓存代理子模块和客户端之间创建ssl连接后,客户代理子模块在接收到客户端发送的第一https请求后,将第一https请求转发至缓存代理子模块。缓存代理子模块解析第一https请求,以获取请求资源信息;基于请求资源信息生成重定向响应,并反馈重定向响应至客户端,重定向响应指示客户端基于请求资源信息发起http请求。客户端发送http请求至客户代理子模块。客户代理子模块将http请求转发至缓存代理子模块。缓存代理子模块为http请求添加第一头部,第一头部指示http请求的原始协议类型为https;将添加第一头部后的http请求发送至缓存模块,使得缓存模块基于http请求反馈资源。缓存模块若确定http请求中存在第一头部,将http请求转换为第二https请求;发送第二https请求至源站服务器。若确定http请求不存在第一头部,发送http请求至源站服务器。缓存模块请求得到对应的资源后,发送资源至缓存代理子模块;缓存代理子模块获取资源,并将资源中的https链接修改为http链接;将修改后的资源反馈至客户代理子模块,客户代理子模块将修改后的资源发送给客户端。38.可选择的,客户代理子模块接收客户端发起的资源的https请求后,若确定https请求的目的端口信息指示https请求的目的端口不是指定端口,获取https请求的目的端口信息;将目的端口信息和https请求传输至缓存代理子模块。缓存代理子模块在解析https请求中的超文本传输协议http请求后,在重定向响应的头部中添加目的端口信息,反馈重定向响应至客户端,重定向响应指示客户端发起资源的http请求。39.在一个实施例中,客户代理子模块在将目的端口信息和https请求传输至缓存客户代理子模块之后,接收客户端发起的资源的http请求;为http请求添加第二头部,第二头部包括目的端口信息;将添加第二头部后的http请求发送至缓存客户代理子模块。40.在一个实施例中,客户代理子模块通过代理协议(proxyprotocol)传输目的端口信息。具体地,代理协议头部格式为{proxy协议栈源ip目的ip源端口目的端口},目的端口信息可以保存在该头部的目的端口中,传给缓存代理子模块。41.需要说明的是,本领域技术人员可以理解,客户代理子模块还可以通过其他方式传输目的端口信息,本实施例仅为举例说明。42.以上各实施例可以相互结合相互引用,例如下面是各实施例结合后的例子,然并不以此为限;各实施例在不矛盾的前提下可以任意结合成为一个新的实施例。43.在一个实施例中,如图2所示为由web缓存代理系统执行的访问方法,包括如下步骤。44.步骤201:代理模块与客户端建立ssl连接,基于ssl连接接收客户端发起的第一https请求,并解析第一https请求,以获取请求资源信息。45.步骤202:代理模块基于请求资源信息生成重定向响应,并反馈重定向响应至客户端。重定向响应指示客户端基于请求资源信息发起http请求。46.步骤203:代理模块接收到客户端的http请求后,为http请求添加第一头部。第一头部指示http请求的原始协议类型为https。47.步骤204:代理模块将添加第一头部后的http请求发送至缓存模块,使得缓存模块基于http请求反馈资源。48.步骤205:缓存模块判断缓存中是否存在http请求对应的资源。若确定是,执行步骤206,否则,执行步骤207。49.步骤206:缓存模块通过代理模块反馈资源至客户端。之后结束流程。50.步骤207:缓存模块向源站服务器请求资源,通过代理模块反馈资源至客户端,并缓存资源。51.其中,缓存模块向源站服务器请求资源,包括:若确定http请求中存在第一头部,将http请求转换为第二https请求;发送第二https请求至源站服务器;若确定http请求不存在第一头部,发送http请求至源站服务器。52.缓存模块通过代理模块反馈资源至客户端,包括:缓存模块发送资源至代理模块;代理模块获取资源,并将资源中的https链接修改为http链接;将修改后的资源反馈至客户端。53.可选择的,代理模块包括客户代理子模块和缓存代理子模块,客户代理子模块分别与客户端和缓存代理子模块建立tcp连接,并基于tcp连接将客户端发送的ssl连接请求转发至缓存代理子模块,使得缓存代理子模块基于ssl连接请求与客户端建立ssl连接。54.可选择的,客户代理子模块与客户端建立tcp连接的过程包含:客户代理子模块拦截客户端向源站服务器发送的tcp连接请求,并伪装成源站服务器与客户端建立tcp连接。55.在一个实施例中,如图3所示为由web缓存代理系统执行的访问方法,包括如下步骤。56.步骤301:代理模块与客户端建立ssl连接,基于ssl连接接收客户端发起的第一https请求,并解析第一https请求,以获取请求资源信息。57.步骤302:代理模块基于请求资源信息生成重定向响应。58.步骤303:代理模块获取第一https请求的目的端口信息。59.步骤304:代理模块判断目的端口信息是否指示目的端口不是指定端口。若确定是,执行步骤305,否则,执行步骤306。60.步骤305:代理模块在重定向响应的头部中添加目的端口信息,使得客户端基于目的端口信息发起http请求。61.步骤306:代理模块反馈重定向响应至客户端;重定向响应指示客户端基于请求资源信息发起http请求。62.步骤307:代理模块接收到客户端的http请求后,为http请求添加第一头部和第二头部。第一头部指示http请求的原始协议类型为https。第二头部包括目的端口信息。63.步骤308:代理模块将添加第一头部和第二头部后的http请求发送至缓存模块,使得缓存模块基于http请求反馈资源。64.步骤309:缓存模块判断缓存中是否存在http请求对应的资源。若确定是,执行步骤310,否则,执行步骤311。65.步骤310:缓存模块通过代理模块反馈资源至客户端。之后结束流程。66.步骤311:缓存模块向源站服务器请求资源,通过代理模块反馈资源至客户端,并缓存资源。67.其中,缓存模块向源站服务器请求资源,包括:缓存模块识别http请求的第二头部中携带的目的端口信息,则确定该目的端口信息为源站服务器对应的端口。若进一步确定http请求中存在第一头部,将http请求转换为第二https请求,并发送第二https请求至源站服务器的对应的端口,即该目的端口信息对应的端口;若确定http请求不存在第一头部,发送http请求至源站服务器的对应的端口。68.可选择的,缓存模块通过代理模块反馈资源至客户端,包括:缓存模块发送资源至代理模块;代理模块获取资源,并将资源中的https链接修改为http链接;将修改后的资源反馈至客户端。69.可选择的,代理模块包括客户代理子模块和缓存代理子模块,客户代理子模块分别与客户端和缓存代理子模块建立tcp连接,并基于tcp连接将客户端发送的ssl连接请求转发至缓存代理子模块,使得缓存代理子模块基于ssl连接请求与客户端建立ssl连接。70.可选择的,客户代理子模块与客户端建立tcp连接的过程包含:客户代理子模块拦截客户端向源站服务器发送的tcp连接请求,并伪装成源站服务器与客户端建立tcp连接。71.值得注意的是,本技术实施例所提供的web缓存代理系统中的代理模块与缓存模块可以分别部署在不同的服务设备上,也可以部署在同一服务设备上,更进一步的,代理模块中的客户代理子模块和缓存代理子模块可以分别部署在不同的服务设备上,也可以部署在同一服务设备上,具体的部署方式可根据实际的应用场景进行设定。72.在一个例子中,部署有客户代理子模块的服务器可称为传输层代理服务器,部署有缓存代理子模块的服务器可称为应用层代理服务器,部署有缓存模块的服务器可称为缓存服务器。在客户端与缓存服务器之间设置有两层代理服务,客户端先后通过传输层代理服务器和应用层代理服务器与缓存服务器通信连接。其中,传输层代理服务器主要实现传输层透明代理服务,实现智能选路,引导数据流量。应用层代理服务器主要与客户端进行ssl连接,并在应用层完成重定向和页面修改任务。简而言之,传输层代理服务器进行传输层数据的分发,应用层代理服务器进行应用层的服务。该例子中,客户端、传输层代理服务器、应用层代理服务器、缓存服务器和源站服务器之间的交互示意图如图4所示,传输层代理服务器、应用层代理服务器和缓存服务器配合执行的访问资源的方法包括如下步骤。73.步骤401:客户端与传输层代理服务器三次握手,建立tcp连接。74.具体地,传输层代理服务器拦截客户端向源站服务器发送的tcp连接请求,并伪装成源站服务器与客户端建立tcp连接,其中传输层代理服务器分别与应用层代理服务器之间也建立有tcp连接。75.步骤402:客户端发送ssl连接请求,并基于应用层代理服务器反馈的伪证书,与应用层代理服务器建立ssl连接。76.具体地,传输层代理服务器基于tcp连接将客户端发送的ssl连接请求转发至应用层代理服务器,应用层代理服务器构造伪证书,并伪装成源站服务器对客户端的ssl连接请求进行响应,若用户通过客户端选择信任该伪证书,客户端则可基于该伪证书与应用层代理服务器建立ssl连接。77.步骤403:客户端发起https请求至传输层代理服务器。78.具体的,当ssl连接建立完成,客户端可基于该连接向源站服务器发送https请求,该https请求例如可以是针对网站首页发出的超文本标记语言(hypertextmarkuplanguage,html)页面请求。79.步骤404:传输层代理服务器转发https请求至应用层代理服务器。80.步骤405:应用层代理服务器解析https请求得到请求资源信息,并给客户端回复302响应。302响应指示客户端浏览器向请求资源信息发起http请求。81.步骤406:客户端收到302响应,发起http请求。82.步骤407:传输层代理服务器转发该http请求至应用层代理服务器。83.步骤408:应用层代理服务器为http请求添加x‑cdn‑ssl头部,将添加x‑cdn‑ssl头部的http请求分发给后端的缓存服务器。x‑cdn‑ssl头部指示客户端原始为https请求。84.步骤409:缓存服务器收到应用层代理服务器发送的http请求,由于该http请求含x‑cdn‑ssl头部,则表明该http请求原为https请求,将其转成https请求,发送给源站服务器。85.步骤410:源站服务器返回该https请求所请求访问的资源给缓存服务器。86.步骤411:缓存服务器向应用层代理服务器返回源站服务器响应的资源,并将源站服务器响应的资源缓存起来。87.步骤412:应用层代理服务器收到源站服务器响应的内容后,修改源站服务器响应的内容中的https链接为http链接,使得后续子请求的协议为http协议,并向传输层代理服务器返回修改后的内容。88.例如,在获取https://www.baidu.com/页面内容后,html页面标签中包含大量的https链接。html页面标签如下:89.<img90.src='https://dss0.bdstatic.com/5av1bjqh_q23odcf/static/superman/img/topnav/baiduyun@2x‑e0be79e69e.png'/>.91.此时将html页面标签的img标签中的src链接进行修改,以将https链接降级为http链接。修改后的src链接如下:92.'http://dss0.bdstatic.com/5av1bjqh_q23odcf/static/superman/img/topnav/baiduyun@2x‑e0be79e69e.png'.93.修改后的链接即为降级的http链接。94.步骤413:传输层代理服务器转发修改后的内容给客户端。95.通过上述内容可知,通过本实施例的访问资源的方法,客户端可以成功获取到原为https请求所请求的资源,并实现了web缓存代理。96.步骤414:客户端发送该资源的降级为http子请求至传输层代理服务器。97.其中,http子请求是指客户端针对接收到响应内容中的链接进一步发出的访问请求。步骤415:传输层代理服务器转发http子请求至应用层代理服务器。98.步骤416:应用层代理服务器解析http子请求,为http子请求添加x‑cdn‑ssl头部,将添加x‑cdn‑ssl头部的http子请求至缓存服务器。99.步骤417:缓存服务器识别http子请求,将http子请求转成https子请求,发送至源站服务器。100.步骤418:源站服务器返回该https子请求所请求访问的资源。101.步骤419:缓存服务器向应用层代理服务器返回源站服务器响应的内容,并将源站服务器响应的内容缓存起来。102.步骤420:应用层代理服务器收到源站服务器响应的内容后,修改源站服务器响应的内容中的https链接为http链接,使得后续子请求的协议为http协议,并向传输层代理服务器返回修改后的内容。103.步骤421:传输层代理服务器转发修改后的内容给客户端。104.通过上述内容可知,通过本实施例的访问资源的方法,客户端可以成功获取到原为https请求所请求的资源。通过302重定向响应及页面改写,将首页以及子链中的https请求降级为http协议,使得缓存服务器能解析明文的http请求,返回缓存。在缓存缺失的情况下,缓存服务器可以将http请求转为相应的https请求回源获取资源,返回给客户,并缓存起来。105.在一个例子中,若客户端发起的https请求的目的端口不是指定端口(443端口),以第二头部命名为ws‑port头部为例,客户端、传输层代理服务器、应用层代理服务器、缓存服务器和源站服务器之间通过代理协议传递目的端口的过程如图5所示,包括以下子步骤。106.步骤501:客户端发送https请求至传输层代理服务器。该https请求的目的端口为非指定的443端口,例如,端口8888。107.步骤502:传输层代理服务器通过过滤系统(如iptables)将https请求重定向到本地端口(如2020端口),此时可以通过套接字应用程序接口(socketapi)获取https请求原始的目的端口信息。108.步骤503:传输层代理服务器通过代理协议(proxyprotocol)传递目的端口信息。代理协议头部格式为{proxy协议栈源ip目的ip源端口目的端口}。目的端口信息可以保存在代理协议头部的目的端口字段中,以传给下一跳代理服务器,同时转发https请求给应用层代理服务器。109.步骤504:应用层代理服务器获取https请求原始的目的端口信息,发现目的端口不为指定端口(443端口),在302响应的location头部中,将原始的目的端口加入到重定向响应的url中,并将该重定向响应发给客户端。110.步骤505:客户端收到302响应,向原来的目的端口发送http请求。111.步骤506:传输层代理服务器在http请求中添加ws‑port头部,并将目的端口8888添加到ws‑port头部,转发添加ws‑port头部后的http请求至应用层代理服务器。112.步骤507:应用层代理服务器为添加ws‑port头部后的http请求,再添加x‑cdn‑ssl头部,并把添加x‑cdn‑ssl头部后的http请求发送给缓存服务器。113.步骤508:缓存服务器根据x‑cdn‑ssl头部将请求还原为https请求,根据ws‑port头部携带的目的端口,向正确的源站服务器的目的端口发起回源请求。114.步骤509:源站服务器反馈https请求所请求的资源给客户端。其具体过程可参考步骤410至步骤413的相关内容。115.通过上述内容可知,通过本实施例的访问资源的方法,针对https流量转发时,丢失目的端口的问题,采用代理协议(proxyprotocol)向下一跳代理服务器传递https请求的目的端口,使得后续的代理服务器能向正确的源站服务器的端口建立连接。116.上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。117.本技术实施例还提供一种web缓存代理系统,如图6所示,包括:代理模块601和缓存模块602。代理模块601用于:与客户端建立安全套接层协议层ssl连接,基于ssl连接接收客户端发起的第一https请求,并解析第一https请求,以获取请求资源信息;基于请求资源信息生成重定向响应,并反馈重定向响应至客户端,重定向响应指示客户端基于请求资源信息发起http请求;转发http请求至缓存模块602;缓存模块602用于:基于http请求反馈资源。118.在一个例子中,缓存模块602具体用于:若确定缓存中存在http请求对应的资源,通过代理模块反馈资源至客户端;若确定缓存中不存在http请求对应的资源,向源站服务器请求资源,通过代理模块反馈资源至客户端,并缓存资源。119.在一个例子中,代理模块包括客户代理子模块和缓存代理子模块,客户代理子模块分别与客户端和缓存代理子模块建立tcp连接,并基于tcp连接将客户端发送的ssl连接请求转发至缓存代理子模块,使得缓存代理子模块基于ssl连接请求与客户端建立ssl连接120.不难发现,本实施例为与上述方法实施例相对应的装置实施例,本实施例可与上述方法实施例互相配合实施。上述方法实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述方法实施例中。121.值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。122.本技术实施例还提供一种电子设备,如图7所示,包括:至少一个处理器701;以及与至少一个处理器701通信连接的存储器702;其中,存储器存储有可被至少一个处理器701执行的指令,指令被至少一个处理器701执行,以使至少一个处理器701能够执行上述方法实施例。123.其中,存储器702和处理器701采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器701和存储器702的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器701处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器701。124.处理器701负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器702可以被用于存储处理器701在执行操作时所使用的数据。125.本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1