URL编码

2016-01-29 12:17 8 1 收藏

URL编码,URL编码

【 tulaoshi.com - C语言心得技巧 】

URL编码
     作者:      Chandrasekhar Vuppalapati
   翻译:eastvc

下载源代码
       
       本文的目的是设计一个完成URL编码的C++类。在我曾经的项目中,我需要从VC++ 6.0应用程序中POST数据,而这些数据需要进行URL编码。我在MSDN中查找能根据提供的字符串生成URL编码的相关类或API,但我没有找到,因此我必须设计一个自己的URLEncode C++类。

URLEncoder.exe是一个使用URLEncode类的MFC对话框程序。

如何处理

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

一些特殊字符在Internet上传送是件棘手的事情, 经URL编码特殊处理,可以使所有字符安全地从Internet传送。

例如,回车的ASCII值是13,在发送FORM数据时候这就认为是一行数据的结束。

通常,所有应用程序采用HTTP或HTTPS协议在客户端和服务器端传送数据。服务器端从客户端接收数据有两种基本方法:

1、数据可以从HTTP头传送(COOKIES或作为FORM数据发送)
       2、可以包含在URL中的查询部分

当数据包含在URL,它必须遵循URL语法进行编码。在WEB服务器端,数据自动解码。考虑一下下面的URL,哪个数据是作为查询参数。

例如:http://WebSite/ResourceName?Data=Data

WebSite是URL名称
       ResourceName可以是ASP或Servlet名称
       Data是需要发送的数据。如果MIME类型是Content-Type: application/x-www-form-urlencoded,则要求进行编码。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

RFC 1738

RFC 1738指明了统一资源定位(URLs)中的字符应该是US-ASCII字符集的子集。这是受HTML的限制,另一方面,允许在文档中使用所有ISO-8859-1(ISO-Latin)字符集。这将意味着在HTML FORM里POST的数据(或作为查询字串的一部分),所有HTML编码必须被编码。

ISO-8859-1 (ISO-Latin)字符集

在下表中,包含了完整的ISO-8859-1 (ISO-Latin)字符集,表格提供了每个字符范围(10进制),描述,实际值,十六进制值,HTML结果。某个范围中的字符是否安全。
     Character range(decimal)TypeValuesSafe/Unsafe0-31ASCII Control CharactersThese characters are not printableUnsafe32-47Reserved Characters'' ''!?#$%&''()*+,-./Unsafe48-57ASCII Characters and Numbers0-9Safe58-64Reserved Characters:;<=?@Unsafe65-90ASCII CharactersA-ZSafe91-96Reserved Characters[]^_`Unsafe97-122ASCII Charactersa-zSafe123-126Reserved Characters{|}~Unsafe127Control Characters '' '' Unsafe128-255Non-ASCII Characters '' '' Unsafe

所有不安全的ASCII字符都需要编码,例如,范围(32-47, 58-64, 91-96, 123-126)。
       下表描述了这些字符为什么不安全。CharacterUnsafe ReasonCharacter Encode"<"Delimiters around URLs in free text%3CDe

来源:http://www.tulaoshi.com/n/20160129/1485392.html

延伸阅读
标签: ASP
By Razvan Peteanu (razvan.peteanu@home.com) for SecurityPortal.com Trans By F@tFox (fatfox@yesky.com) 翻译:fatfox 来源:绿色兵团bbs http://www.vertarmy.org/bbs/ URL结构 我们来仔细看看URLs和与其有关的安全含义。一种“有趣”的URL利用方式已被垃圾广告投递者发现很长时间了,不过现在“KB”(Knowledge Base)欺骗和二月发...
开始编码之前 在VisualBasic中创建应用程序的最重要的(又往往为人忽视的)部分是设计阶段。需要为应用程序设计一个用户界面,这是显然的;但需要设计代码的结构就不那么显然了。构造应用程序的方法不同,可造成应用程序的性能及代码的可维护性、可使用性不同。 VisualBasic应用程序的代码是用分层方式组织的。典型应用程序包括...
标签: Web开发
如:http://localhost/newurl/WebForm1.aspx 1.方法document.URL(注意大小写) 结果是:http://localhost/newurl/WebForm1.aspx 2.HttpContext.Current.Request.Url.ToString(), 结果:http://localhost/newurl/WebForm1.aspx 3.HttpContext.Current.Request.Url.PathAndQuery; 结果:/newurl/WebForm1.aspx 备注: 如果当前URL为 http:/...
开始编码之前 在 Visual Basic 中创建应用程序的最重要的(又往往为人忽视的)部分是设计阶段。需要为应用程序设计一个用户界面,这是显然的;但需要设计代码的结构就不那么显然了。构造应用程序的方法不同,可造成应用程序的性能及代码的可维护性、可使用性不同。 Visual Basic 应用程序的代码是用分层方式组织的。典型应用程...
标签: Web开发
XML 文档中可以包含外语字母,如挪威语 ??? 或法语 êèé。要让你的XML分解器理解这些字母,就应该把XML文档存储成Unicode(统一的字符编码标准)。          bWindows 95/98 记事本       Windows 95/98 记事本不能将文件保存成Unicode 格式。你可以用Notepad 编辑和保存包含外语...

经验教程

600

收藏

64
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部