对请求信息进行解码的方法及装置的制作方法

文档序号:7751553阅读:108来源:国知局
专利名称:对请求信息进行解码的方法及装置的制作方法
技术领域
本发明涉及网络应用领域,特别涉及一种对请求信息进行解码的方法及装置。
背景技术
在Web应用中,浏览器通过向服务器发送超文本传输协议(Hyper TextTransfer Protocol, HTTP)请求信息来获取用户所需的网页内容,而该HTTP请求信息是在浏览器预先进行编码后发送给服务器的。当服务器接收到该HTTP请求信息后,需要通过对其进行解码才能获取浏览器请求的内容。现有技术中,服务器预先设置了一种或多种解码方式,当服务器接收到HTTP请求信息时,仅采用预先设置的一种解码方式对接收到HTTP请求信息进行解码。在实现本发明的过程中,发明人发现现有技术至少存在以下问题由于浏览器所在客户端程序的繁杂,浏览器常常无法采用同一种编码方式对HTTP 请求信息进行编码,因而服务器接收到的HTTP请求信息的编码方式也常常存在多种,而现有技术中,服务器仅采用一种解码方式对接收到的HTTP请求信息进行解码,不仅灵活性不高,且很难正确解码,导致产生乱码。

发明内容
为了提高服务器对请求信息进行解码的灵活性,并避免产生乱码,本发明实施例提供了一种对请求信息进行解码的方法及装置。所述技术方案如下—方面,提供了一种对请求信息进行解码的方法,所述方法包括接收请求信息,所述请求信息包括请求路径、查询串和表单内容;获取所述请求路径的编码方式,根据所述请求路径的编码方式对所述请求路径进行解码,并根据解码后的请求路径分别获取查询串和表单内容;分别获取所述查询串和表单内容的编码方式,并根据所述查询串和表单内容的编码方式对所述查询串和表单内容进行解码。另一方面,提供了一种对请求信息进行解码的装置,所述装置包括接收模块,用于接收请求信息,所述请求信息包括请求路径、查询串和表单内容;第一获取模块,用于获取所述请求路径的编码方式;第一解码模块,用于根据所述第一获取模块获取到的所述请求路径的编码方式对所述请求路径进行解码;第二获取模块,用于根据所述第一解码模块解码后的请求路径分别获取查询串和表单内容;第三获取模块,用于分别获取所述第二获取模块获取到的所述查询串和表单内容的编码方式;第二解码模块,用于根据所述第三获取模块获取到的查询串和表单内容的编码方式对所述查询串和表单内容进行解码。
本发明实施例提供的技术方案带来的有益效果是通过分别获取请求信息的请求路径、查询串和表单内容各个部分的编码方式,并根据获取到的编码方式对请求信息进行解码,从而可以根据不同的编码方式确定不同的解码方式,进而提高了解码的灵活性;另外,由于根据请求信息的编码方式对其进行解码,因而能够保证解码的正确性,避免产生乱码。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例1提供的对请求信息进行解码的方法流程图;图2是本发明实施例2提供的对请求信息进行解码的方法流程图;图3是本发明实施例3提供的对请求信息进行解码的装置结构示意图;图4是本发明实施例3提供的第三获取模块结构示意图;图5是本发明实施例3提供的另一种对请求信息进行解码的装置结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例1参见图1,本发明实施例提供了一种对请求信息进行解码的方法,该方法流程具体如下步骤101,接收请求信息,该请求信息包括请求路径、查询串和表单内容;步骤102,获取请求路径的编码方式,根据请求路径的编码方式对请求路径进行解码,并根据解码后的请求路径分别获取查询串和表单内容;步骤103,分别获取查询串和表单内容的编码方式,并根据查询串和表单内容的编码方式对查询串和表单内容进行解码。本发明实施例提供的方法,通过分别获取请求信息的请求路径、查询串和表单内容各个部分的编码方式,并根据获取到的编码方式对请求信息进行解码,从而可以根据不同的编码方式确定不同的解码方式,进而提高了解码的灵活性;另外,由于根据请求信息的编码方式对其进行解码,因而能够保证解码的正确性,避免产生乱码。实施例2本发明实施例提供了一种对请求信息进行解码的方法,该方法通过获取请求信息的编码方式,并根据请求信息的编码方式对其进行解码,从而能够对请求信息进行正确解码,避免产生乱码。为了便于说明,本发明实施例以服务器接收浏览器发送的超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求信息,并对该HTTP请求信息进行解码为例,对本发明实施例提供的方法进行详细说明。参见图2,方法流程具体如下步骤201,接收浏览器发送的HTTP请求信息;
针对该步骤,浏览器和服务器建立连接后,服务器接收浏览器发送的HTTP请求信息可通过现有技术实现,本发明实施例不对具体接收方式进行限定。其中,HTTP请求信息一般分为请求路径、查询串和表单内容三部分。以浏览器向服务器发送的HTTP请求信息包括“驟w. apusic. com/index, jsp ? keyl =汉字”的统一资源定位符(Uniform/Universal Resource Locator, URL)及该 URL 对应的页面内容“〈input name = " test2 〃 type = " text " value ="中文〃 />,,为例。其中,"www. apusic. com/index, jsp” 为请求路径,“keyl =汉字”为查询串,“〈inputname =" test2 " type ="text" value =“中文〃 />”为表单内容。也就是说,URL中符号“?”前面的部分为请求路径;URL中符号“ ?”后面的部分为查询串。使用Post方法提交数据时,HTTP请求的正文部分为表单内容。实际应用中,浏览器向服务器发出的HTTP请求信息也可能只包括请求路径和查询串两部分,而表单内容为空。如用户通过浏览器输入URL地址,浏览器发出的HTTP请求信息中仅包括请求路径和查询串。本发明实施例仅以浏览器向服务器发送的 HTTP请求信息包括请求路径、查询串及表单内容为例进行说明。服务器接收到的HTTP请求信息是在浏览器编码之后发送的,浏览器对HTTP请求信息进行编码时,对HTTP请求信息的各个部分可以采用一种编码方式。然而,由于浏览器所在客户端程序繁杂等原因,导致很难将HTTP请求信息中的三部分采用同一种编码方式进行编码。因此,在对HTTP请求信息进行编码时,通常采用多种编码方式。例如HTTP请求信息的请求路径采用编码方式A,查询串采用编码方式B,表单内容采用编码方式C,该HTTP 请求信息一共采用了三种编码方式。本发明实施例不对HTTP请求信息的请求路径、查询串和表单内容的具体编码方式进行限定,例如,请求路径的编码方式A、查询串的编码方式 B和表单内容的编码方式C可以为中文编码方式(GB2312,GBK, UTF-8)、繁体中文编码方式 (big5)或日文编码方式(shiftjis)等。本发明实施例不对浏览器采用的具体编码方式进行限定,仅以浏览器对HTTP请求信息的各个部分采用不同的编码方式进行编码的情况为例进行说明。步骤202,获取接收到的HTTP请求信息的编码方式;具体地,针对HTTP请求信息的请求路径、查询串和表单内容各个部分采用不同编码方式的情况,仍以HTTP请求信息的请求路径采用编码方式A,查询串采用编码方式B,表单内容采用编码方式C为例进行说明。在获取HTTP请求信息的编码方式时,本发明实施例同样将HTTP请求信息分成请求路径、查询串和表单内容三部分区别处理,并分别获取请求路径的编码方式A、查询串的编码方式B和表单内容的编码方式C。具体获取时,服务器首先获取请求路径的编码方式A,根据获取到的编码方式A对请求路径进行解码,再根据解码后的请求路径获取查询串和表单内容,并在获取查询串的编码方式B和表单内容的编码方式C之后,对查询串和表单内容分别进行解码。其中,获取请求路径的编码方式A时,包括但不限于以下两种方式用户配置,即用户预先在服务器中配置了请求路径的编码方式A,则服务器通过查询用户配置,即可获取到请求路径的编码方式。自动识别,即服务器采用自动识别算法识别出请求路径的编码方式A。本发明实施例不对采用的自动识别算法进行限定。例如,常用字频率识别算法等。针对该种情况,即使不同浏览器采用不同的编码方式对请求路径进行编码,通过自动识别,服务器仍然能够获取该请求路径的编码方式。获取查询串的编码方式B时,除了通过上述用户配置和自动识别的方式获取查询串的编码方式之外,还可以通过代码指定的方式获取查询串的编码方式。例如,用户在服务器中配置了查询串的编码方式B,服务器通过查询用户配置得到查询串的编码方式B,或服务器自动识别出查询串的编码方式B,或查询串代码指定了查询串的编码方式B,服务器通过获取查询串代码,得到查询串的编码方式B。获取表单内容的编码方式C时,同样可以采用用户配置、自动识别和代码指定的方式,即用户在服务器中配置了表单内容的编码方式C,或服务器自动识别出表单内容的编码方式C,或表单内容代码指定了表单内容的编码方式C。针对上述用户配置和代码指定的获取方式,无论是获取请求路径,还是获取查询串,或是获取表单内容,均是在能够获取其正确的编码方式的情况下采用的。而实际应用中,用户配置和代码指定的编码方式也存在与请求路径,或查询串,或表单内容的实际编码方式不同的情况。为了避免上述情况,保证获取到正确的编码方式,本发明实施例提出了对用户配置和代码指定进行屏蔽的方式。通过采用对用户配置和代码指定进行屏蔽,即使服务器存在用户配置或是代码指定,仍采用自动识别的方式获取HTTP请求信息的编码方式, 因而对于经过任何编码方式编码的HTTP请求信息,服务器均能正确获取其编码方式。步骤203,根据获取到的编码方式对HTTP请求信息进行解码。针对该步骤,由于获取到的编码方式与HTTP请求信息编码时的编码方式相同。因此,在根据获取到的编码方式对HTTP请求信息进行解码时,不会产生乱码。至此,对HTTP请求信息进行解码的过程结束。在对HTTP请求信息进行解码之后, 本发明实施例提供的方法还包括如下步骤。步骤204,根据解码后的HTTP请求信息获取响应信息,并将编码后的响应信息及采用的编码方式返回给浏览器;具体地,本发明实施例不对获取响应信息的方式进行限定。实际应用中,服务器可根据解码后的表单内容查找到对应的匹配信息,而该匹配信息即为HTTP请求信息的响应信息。关于如何对该响应信息进行编码,本发明实施例不作具体限定,包括但不限于采用用户配置,代码指定及自动识别等几种方式获取响应信息的编码方式。具体获取响应信息的编码方式时,可在用户配置、代码指定及自动识别等方式中随机选择一种,还可以通过设置优先级的方式进行选择,本发明实施例不对选择获取方式进行限定,同样不对设置优先级的方式进行限定。例如,对代码指定、用户配置和自动识别依次设由高到低的优先级,则在对响应信息进行编码时,首先判断是否存在代码指定的编码方式,如果存在,则采用代码指定的编码方式进行编码;如果不存在,再判断是否存在用户配置的编码方式,当存在用户配置的编码方式时,则采用用户配置的编码方式进行编码,否则,采用自动识别出的编码方式对响应信息进行编码。无论服务器采用哪种编码方式对响应信息进行编码,服务器通过将采用的编码方式与响应信息一同发送给浏览器,都能保证浏览器正确解码,从而避免乱码的产生。具体实现时,服务器可通过获取Http Writer设置响应头,并通过响应头将采用的编码方式及响应信息返回给浏览器。
浏览器接收到响应信息,直接根据该响应信息中包含的编码方式对响应信息进行解码,而不需要识别响应信息的编码方式,从而浏览器不会产生乱码。本发明实施例提供的对请求信息进行解码的方法,通过分别获取HTTP请求信息的请求路径、查询串和表单内容各个部分的编码方式,并根据获取到的编码方式对HTTP请求信息的各个部分分别进行解码,保证了能够对HTTP请求信息进行正确解码,因而不会出现乱码;又由于对HTTP请求信息的各个部分进行了区别处理,且根据HTTP请求信息的各个部分的编码方式确定对应的解码方式,从而提高了服务器对HTTP请求信息进行解码的灵活性,且在对HTTP请求信息的各个部分进行区别处理时,通过屏蔽用户配置及代码指定, 并采用自动识别的方式获取HTTP请求信息的编码方式,能够保证对经过任何编码方式编码的HTTP请求信息进行正确解码;另外,服务器在获取响应信息并对其进行编码后,通过将编码后的响应信息及其编码方式返回给浏览器,使浏览器能够根据该编码方式对编码后的响应信息进行正确解码,从而进一步避免了产生乱码。实施例3参见图3,本发明实施例提供了一种对请求信息进行解码的装置,该装置包括接收模块301,用于接收请求信息,请求信息包括请求路径、查询串和表单内容;第一获取模块302,用于获取请求路径的编码方式;第一解码模块303,用于根据第一获取模块302获取到的请求路径的编码方式对请求路径进行解码;第二获取模块304,用于根据第一解码模块303解码后的请求路径分别获取查询串和表单内容;第三获取模块305,用于分别获取第二获取模块304获取到的查询串和表单内容的编码方式;第二解码模块306,用于根据第三获取模块305获取到的查询串和表单内容的编码方式对查询串和表单内容进行解码。其中,第一获取模块302,具体用于获取用户配置的请求路径的编码方式,或获取自动识别出的请求路径的编码方式;参见图4,第三获取模块305,具体包括第一单元3051,具体用于获取用户配置的查询串的编码方式,或获取自动识别出的查询串的编码方式,或获取代码指定的查询串的编码方式;第二单元3052,具体用于获取用户配置的表单内容的编码方式,或获取自动识别出的表单内容的编码方式,获取代码指定的表单内容的编码方式。参见图5,该装置还包括第四获取模块307,用于根据解码后的请求信息获取响应信息;第五获取模块308,用于获取编码方式;编码模块309,用于根据第五获取模块308获取到的编码方式对第一获取模块303 获取到的响应信息进行编码;返回模块310,用于返回编码模块309编码后的响应信息及采用的编码方式。具体地,第五获取模块308,具体用于获取用户配置的编码方式,或获取代码指定的编码方式,或获取自动识别的编码方式。
本发明实施例提供的对请求信息进行解码的装置,通过获取请求信息的编码方式,并根据获取到的编码方式对请求信息进行解码,从而可以根据不同的编码方式确定不同的解码方式,进而提高了解码的灵活性;且由于根据请求信息的编码方式对其进行解码, 因而能够保证解码的正确性,避免产生乱码。另外,服务器在根据请求信息获取响应信息并对其进行编码后,通过返回编码后的响应信息及响应信息的编码方式,使接收到该编码后的响应信息的设备能够根据该编码方式对编码后的响应信息进行正确解码,从而进一步避免了产生乱码。需要说明的是上述实施例提供的对请求信息进行解码的装置在对请求信息进行解码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的对请求信息进行解码的装置与对请求信息进行解码的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如计算机中的硬盘、光盘或软盘。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.对请求信息进行解码的方法,其特征在于,所述方法包括 接收请求信息,所述请求信息包括请求路径、查询串和表单内容;获取所述请求路径的编码方式,根据所述请求路径的编码方式对所述请求路径进行解码,并根据解码后的请求路径分别获取查询串和表单内容;分别获取所述查询串和表单内容的编码方式,并根据所述查询串和表单内容的编码方式对所述查询串和表单内容进行解码。
2.如权利要求1所述的方法,其特征在于, 所述获取所述请求路径的编码方式,具体包括获取用户配置的请求路径的编码方式,或获取自动识别出的请求路径的编码方式; 所述分别获取所述查询串和表单内容的编码方式,具体包括 获取用户配置的查询串的编码方式,或获取自动识别出的查询串的编码方式,或获取代码指定的查询串的编码方式;获取用户配置的表单内容的编码方式,或获取自动识别出的表单内容的编码方式,或获取代码指定的表单内容的编码方式。
3.如权利要求1所述的方法,其特征在于,所述分别获取所述查询串和表单内容的编码方式,并根据所述查询串和表单内容的编码方式对所述查询串和表单内容进行解码之后,还包括根据解码后的请求信息获取响应信息;获取编码方式,根据获取到的编码方式对所述响应信息进行编码; 返回编码后的响应信息及采用的编码方式。
4.如权利要求3所述的方法,其特征在于,所述获取编码方式,具体为获取用户配置的编码方式,或获取代码指定的编码方式,或获取自动识别的编码方式。
5.一种对请求信息进行解码的装置,其特征在于,所述装置包括接收模块,用于接收请求信息,所述请求信息包括请求路径、查询串和表单内容; 第一获取模块,用于获取所述请求路径的编码方式;第一解码模块,用于根据所述第一获取模块获取到的所述请求路径的编码方式对所述请求路径进行解码;第二获取模块,用于根据所述第一解码模块解码后的请求路径分别获取查询串和表单内容;第三获取模块,用于分别获取所述第二获取模块获取到的所述查询串和表单内容的编码方式;第二解码模块,用于根据所述第三获取模块获取到的查询串和表单内容的编码方式对所述查询串和表单内容进行解码。
6.如权利要求5所述的装置,其特征在于,所述第一获取模块,具体用于获取用户配置的请求路径的编码方式,或获取自动识别出的请求路径的编码方式;所述第三获取模块,具体包括第一单元,具体用于获取用户配置的查询串的编码方式,或获取自动识别出的查询串的编码方式,或获取代码指定的查询串的编码方式;第二单元,具体用于获取用户配置的表单内容的编码方式,或获取自动识别出的表单内容的编码方式,获取代码指定的表单内容的编码方式。
7.如权利要求5所述的装置,其特征在于,所述装置还包括 第四获取模块,用于根据解码后的请求信息获取响应信息; 第五获取模块,用于获取编码方式;编码模块,用于根据所述第五获取模块获取到的编码方式对所述第四获取模块获取到的响应信息进行编码;返回模块,用于返回所述编码模块编码后的响应信息及采用的编码方式。
8.如权利要求7所述的装置,其特征在于,所述第五获取模块,具体用于获取用户配置的编码方式,或获取代码指定的编码方式,或获取自动识别的编码方式。
全文摘要
本发明公开了一种对请求信息进行解码的方法及装置,属于网络应用领域。所述方法包括接收请求信息;分别获取所述请求信息的请求路径、查询串和表单内容的编码方式;根据获取到的编码方式对所述请求信息进行解码。所述装置包括接收模块、第一获取模块、第一解码模块、第二获取模块、第三获取模块和第二解码模块。本发明通过分别获取请求信息的请求路径、查询串和表单内容的编码方式,并根据获取到的编码方式对请求信息进行解码,从而可以根据不同的编码方式确定不同的解码方式,进而提高了解码的灵活性;另外,由于根据请求信息的编码方式对其进行解码,因而能够保证解码的正确性,避免产生乱码。
文档编号H04L29/06GK102281259SQ20101020063
公开日2011年12月14日 申请日期2010年6月11日 优先权日2010年6月11日
发明者吴超 申请人:深圳市金蝶中间件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1