﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Go Go Jeffrey-文章分类-概念性</title><link>http://www.cppblog.com/jeffrey/category/815.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 31 May 2008 04:50:03 GMT</lastBuildDate><pubDate>Sat, 31 May 2008 04:50:03 GMT</pubDate><ttl>60</ttl><item><title>http get 与 post 的区别</title><link>http://www.cppblog.com/jeffrey/articles/3280.html</link><dc:creator>jeffrey</dc:creator><author>jeffrey</author><pubDate>Thu, 16 Feb 2006 02:08:00 GMT</pubDate><guid>http://www.cppblog.com/jeffrey/articles/3280.html</guid><wfw:comment>http://www.cppblog.com/jeffrey/comments/3280.html</wfw:comment><comments>http://www.cppblog.com/jeffrey/articles/3280.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jeffrey/comments/commentRss/3280.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jeffrey/services/trackbacks/3280.html</trackback:ping><description><![CDATA[超文本传输协议 (Hypertext Transfer Protocol, HTTP) 是一个“请求-回应”的应用协议。这个协议支持一套固定的方法如 GET、POST、PUT、DELETE 等。一般用 GET 方法向服务器请求资源。这里有两个 GET 请求的例子：<BR><BR>
<BLOCKQUOTE>GET / HTTP/1.1<BR>GET /names.html HTTP/1.1</BLOCKQUOTE><BR>　　另外，你可以使用 GET 和 POST 方法向服务器发送数据，它们向服务器发送数据的方式是不同的：<BR><BR>GET 方法：输入的数据将作为 URL 的一部分发送 <BR>POST 方法：输入数据作为一个独立的实体发送 <BR>　　考虑一下下面的 HTML 表单：<BR><BR>
<BLOCKQUOTE>&lt;form action="http://www.javacourses.com/servlets/getMarks method="GET"&gt;<BR>Student#:<BR>&lt;input type=text name=number size=30&gt;<BR>&lt;input type=submit name=GetMarks value=GetMarks&gt;<BR>&lt;/form&gt;</BLOCKQUOTE><BR>　　这个表单会提交到 http://www.javacourses.com/servlet/getMarks 由 Servlet 处理。该表单使用了 GET 方法来传输信息。如果用户输入一个学号——比如 556677——并点击 GetMarks 按钮，表单数据就会作为 URL 的一部分传送到 Servlet 中。经过编码之后的 URL 就是：http://www.javacourses.com/servlets/getMarks?number=556677。<BR><BR>　　在使用 POST 方法的情况下，传输数据时不会将数据作为 URL 的一部分；它们会作为一个独立的实体来传输。因此，POST 方法更安全，你也可以用这个方法传输更多的数据。而且用 POST 传输的数据不一定要是文本，用 GET 方法传输的却一定要是文本。<BR><img src ="http://www.cppblog.com/jeffrey/aggbug/3280.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jeffrey/" target="_blank">jeffrey</a> 2006-02-16 10:08 <a href="http://www.cppblog.com/jeffrey/articles/3280.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Big Endian 与 Little Endian</title><link>http://www.cppblog.com/jeffrey/articles/2836.html</link><dc:creator>jeffrey</dc:creator><author>jeffrey</author><pubDate>Tue, 17 Jan 2006 07:14:00 GMT</pubDate><guid>http://www.cppblog.com/jeffrey/articles/2836.html</guid><wfw:comment>http://www.cppblog.com/jeffrey/comments/2836.html</wfw:comment><comments>http://www.cppblog.com/jeffrey/articles/2836.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jeffrey/comments/commentRss/2836.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jeffrey/services/trackbacks/2836.html</trackback:ping><description><![CDATA[<P>1。概念<BR>Big Endian : The most significant byte is on the left end of the word<BR>Little Endian : The most significant byte is on the right end of the word<BR>例如：word 0x1234 在内存中是<BR>Big Endian : 低字节（left end of the word )0x12<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 高字节（right end of the word ）0x34<BR>End Endian : 低字节（left end of the word )0x34<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 高字节（right end of the word ）0x12</P>
<P>2。其需要注意得地方<BR>由于不同cpu对字节序的处理可能是不同，比如x86系列是使用little-endian字节序，SGI机器则是使用big-endian字节序。所以在对跨平台通</P>
<P>讯的时候特别要注意字节序的转换。由于历史问题，网络字节序统一为big-endian。只要通讯双方机器在网络传输中统一把字节转换为big-end</P>
<P>ian，则不会出现问题。由此你可以了解到socket编程中系统为用户提供的字节序转换函数ntohl, htonl, ntohs, htons的含义所在了。</P>
<P>3。总结<BR>假设我们要在不同byte ordering的机器之间传输和交换数据，那该怎么办呢，有两个方法，一是全部转换成文本来传输(如XML使用的)，另一</P>
<P>个方法两方都按照某一方的byte order，这时就涉及到了不同byte order之间相互转换的问题（网络传输标准如TCP/IP采用第二种方法并且由</P>
<P>于历史的原因，byte ordering是big-endian的）。</P><img src ="http://www.cppblog.com/jeffrey/aggbug/2836.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jeffrey/" target="_blank">jeffrey</a> 2006-01-17 15:14 <a href="http://www.cppblog.com/jeffrey/articles/2836.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++字符串 </title><link>http://www.cppblog.com/jeffrey/articles/2835.html</link><dc:creator>jeffrey</dc:creator><author>jeffrey</author><pubDate>Tue, 17 Jan 2006 07:13:00 GMT</pubDate><guid>http://www.cppblog.com/jeffrey/articles/2835.html</guid><wfw:comment>http://www.cppblog.com/jeffrey/comments/2835.html</wfw:comment><comments>http://www.cppblog.com/jeffrey/articles/2835.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jeffrey/comments/commentRss/2835.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jeffrey/services/trackbacks/2835.html</trackback:ping><description><![CDATA[<P>1。字符基础 -- ASCII, DBCS, Unicode<BR>首先，我们强调一下几个概念<BR>c-style字符串 : 字符串的长度要通过寻找结束符来计算。例如，SBCS和MBCS都是以单个字节的0字符作为结束符。UNICODE则以双字节的0字符</P>
<P>作为结束符。<BR>pascal-style字符串 : 字符串长度被明确指出。</P>
<P>编码模式有3种 : <BR>单子节字符集（SBCS）,所有字符都使用一个字节表示。<BR>多字节字符集（MBCS) , 一个MBCS编码包含一些一个字节长的字符，而另一些字符大于一个字节的长度。<BR>Unicode, 是一种所有的字符都使用两个字节编码的编码模式。</P>
<P>由于编码模式有3种，所以微软对字符串或字符的处理也相应分别有3种函数。明确要处理的字符串的编码模式而采用相应的处理函数是非常重</P>
<P>要的。</P>
<P>2。字符串的各种封装类<BR>因为C语言风格的字符串容易出错且不易管理，黑客们甚至利用可能存在的缓冲区溢出bug把C语言风格的字符串作为攻击目标，所以出现了很多</P>
<P>字符串封装类。不幸的是，在某些场合下我们不知道该使用哪个字符串类，也不知道怎样把一个C风格的字符串转换成一个字符串封装类。</P>
<P>CRT提供的类 ， _bstr_t&nbsp; ， _variant_t<BR>STL 类 ， basic_string<BR>ATL 类 ，CComBSTR ， CComVariant<BR>MFC类 ， CString&nbsp; ， COleVariant<BR>WTL 类 ， CString</P><img src ="http://www.cppblog.com/jeffrey/aggbug/2835.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jeffrey/" target="_blank">jeffrey</a> 2006-01-17 15:13 <a href="http://www.cppblog.com/jeffrey/articles/2835.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XML诞生的原因</title><link>http://www.cppblog.com/jeffrey/articles/2834.html</link><dc:creator>jeffrey</dc:creator><author>jeffrey</author><pubDate>Tue, 17 Jan 2006 07:11:00 GMT</pubDate><guid>http://www.cppblog.com/jeffrey/articles/2834.html</guid><wfw:comment>http://www.cppblog.com/jeffrey/comments/2834.html</wfw:comment><comments>http://www.cppblog.com/jeffrey/articles/2834.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jeffrey/comments/commentRss/2834.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jeffrey/services/trackbacks/2834.html</trackback:ping><description><![CDATA[<P>在介绍XML诞生原因前，先介绍一下HTML这个纵横网络多年的语言。HTML是一套很好的展示人机界面的语言，其设计的目的就是为了更好的在网</P>
<P>路中展示和表现数据（以各种各样出色友好的界面方便人的阅读）。出色在于对原始的，枯燥的数据的排版，使用户更好地理解数据。</P>
<P>HTML出色的表现性掩盖了它的一个严重的缺陷，就是对各种各样，千奇百怪，相差甚远的数据表达得不够。不利于那种只是单纯使用（不需要</P>
<P>友好界面）原始数据的应用。例如数据库中的数据存储。</P>
<P>XML就是为了泥补HTML在单纯数据处理方面的缺点而诞生的。其优点在于：<BR>1。可以自由定义数据的组织协议，只要使用的各方都尊从这种协议就可以互相通讯和使用该数据。<BR>2。数据是以文本形式存储，而不是2进制形式，能够以肉眼分辨出。<BR>3。支持XML的分析器短小精悍，而且很多是免费的，支持的平台又多，所以很多原本以有的数据都可以方便转换为xml形式存储。例如，mainfr</P>
<P>ame平台的数据要想存放到win32平台，只要把mainframe的数据转换为xml格式，然后传输xml文档到win32平台，win32平台再转换为能够存在于</P>
<P>win32平台的数据形式。</P>
<P>4。现有的每一种文档都有自己的格式，比如说微软的DOC。但很难说50年后还会有能读写这种格式的软件，但如果数据内容是以XML格式存储的</P>
<P>，那么这种文档就可以保存到永远。</P>
<P>总结，XML就是一种跨平台，跨协议的通用的数据存储语言。</P><img src ="http://www.cppblog.com/jeffrey/aggbug/2834.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jeffrey/" target="_blank">jeffrey</a> 2006-01-17 15:11 <a href="http://www.cppblog.com/jeffrey/articles/2834.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>