??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲综合激情五月丁香六月 ,亚洲乱码无人区卡1卡2卡3,亚洲熟妇无码一区二区三区导航http://m.tkk7.com/dashi99/category/45512.html<div align="center"> <img height="50" width="200" name="welcome" src="http://m.tkk7.com/images/blogjava_net/majianan/14891/r_5858488902000cu2.gif"/> </div> <br/> <center><font size=4 >鱼离不开?但是没有说不d哪滴?</font></center>zh-cnWed, 15 Aug 2012 08:57:12 GMTWed, 15 Aug 2012 08:57:12 GMT60How To Avoid javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated Problem Using Apache HttpClienthttp://m.tkk7.com/dashi99/archive/2012/08/14/385484.htmlゞ沉默是金ゞゞ沉默是金ゞTue, 14 Aug 2012 10:42:00 GMThttp://m.tkk7.com/dashi99/archive/2012/08/14/385484.htmlhttp://m.tkk7.com/dashi99/comments/385484.htmlhttp://m.tkk7.com/dashi99/archive/2012/08/14/385484.html#Feedback0http://m.tkk7.com/dashi99/comments/commentRss/385484.htmlhttp://m.tkk7.com/dashi99/services/trackbacks/385484.html

I use Apache’s HttpClient library for all my URL related needs. It is a marvelous library that does most of the job behind the scenes. Compared the Java’s URL class, it is not as easy to use as Apache’s HttpClient. While using this library, a site that I commonly check for updates threw the exception message javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated.

When I checked the site, it seemed that its SSL certificated had expired. The only workaround for this is to create your own TrustManager. This class actually checks if the SSL certificate is valid. The scheme used by SSL is called X.509 and Java has a specific TrustManager for this scheme, called X509TrustManager.

This handy method created by theskeleton is just the perfect solution to have your HttpClient object bypass any SSL related errors and ensures that it accepts all SSL certificates of a site, whether it is expired or not.


public static HttpClient wrapClient(HttpClient base) {
    
try {
        SSLContext ctx 
= SSLContext.getInstance("TLS");
        X509TrustManager tm 
= new X509TrustManager() {
            
public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException { }
 
            
public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException { }
 
            
public X509Certificate[] getAcceptedIssuers() {
                
return null;
            }
        };
        ctx.init(
nullnew TrustManager[]{tm}, null);
        SSLSocketFactory ssf 
= new SSLSocketFactory(ctx);
        ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
        ClientConnectionManager ccm 
= base.getConnectionManager();
        SchemeRegistry sr 
= ccm.getSchemeRegistry();
        sr.register(
new Scheme("https", ssf, 443));
        
return new DefaultHttpClient(ccm, base.getParams());
    } 
catch (Exception ex) {
        
return null;
    }
}

Another way is to recreate the keystore, for the keystore you should have the site in the CN=XXX.
the command as below:
1. Create keystore
keytool -genkey -dname "cn=daXXX.XXX.com,o=,c=" -storepass MB7BROKERpzn -keystore pznKeyStore.jks -alias pznsigned
2. Export the cert
keytool -export -keystore pznKeyStore.jks -alias pznsigned -file pznsslcert.cer
3. Create trust store for client
keytool -genkey -dname "cn=da957203.fmr.com,o=,c=" -storepass MB7BROKERpzn -keystore pznTrustStore.jks -alias pzntrustsigned
4. import the server cert
keytool -import -alias pzntrust -file pznsslcert.cer -keystore pznTrustStore.jks -storepass MB7BROKERpzn
5. use http client to call the server
        try {
            KeyStore trustStore  = KeyStore.getInstance(KeyStore.getDefaultType());
            FileInputStream instream = new FileInputStream(new File(trustfname));
            try {
                trustStore.load(instream, passphrase.toCharArray());
            } finally {
                try { instream.close(); } catch (Exception ignore) {}
            }
            SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);
            Scheme sch = new Scheme("https", 443, socketFactory);
            httpclient.getConnectionManager().getSchemeRegistry().register(sch);
        } catch (Exception e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }







ゞ沉默是金ゞ 2012-08-14 18:42 发表评论
]]>
How to Create Client/Server Keystores using Java Keytoolhttp://m.tkk7.com/dashi99/archive/2012/06/26/381538.htmlゞ沉默是金ゞゞ沉默是金ゞTue, 26 Jun 2012 11:15:00 GMThttp://m.tkk7.com/dashi99/archive/2012/06/26/381538.htmlhttp://m.tkk7.com/dashi99/comments/381538.htmlhttp://m.tkk7.com/dashi99/archive/2012/06/26/381538.html#Feedback0http://m.tkk7.com/dashi99/comments/commentRss/381538.htmlhttp://m.tkk7.com/dashi99/services/trackbacks/381538.html

Here I have described how to create client/server keystores which can be used to secure Axsi2 webservices and invoke Axis2 secured webservices. i.e. It can be easily used with any WSO2 Product to experience security scenarios.More detailed explanation on creating client/server keystores using openssl including Certificate Authority(CA) Requests, can be found at http://wso2.org/library/174.

 

Java keytool stores the keys and certificates in a keystore, protected by a keystore password. Further, it protects private key again with another password. A Java keystore contains private-public key pair and multiple trusted certificate entries. All entries in a keystore are referred by aliases. Both private key and self signed public key is referred by one alias while any other trusted certificates are referred by different individual aliases.

 

As the first step, let's create a keystore for server. In order to do it, execute following command in a terminal. "server" in the following command corresponds to the private key/self signed public key certificate alias in the keystore while "server.jks" is the name of the creating keystore file.

keytool -genkey -alias server -keyalg RSA -keystore server.jks

when you execute the above command it will first prompt you to specify a password which is corresponded to the keystore password. Then it will prompt several questions. You can give answers that you wish. At the end it will ask for a password again, which will be used to secure the generated private key.

Enter keystore password: 
Re-enter new password:
What is your first and last name?
[Unknown]: Ruchira Wageesha
What is the name of your organizational unit?
[Unknown]: Mashup Server
What is the name of your organization?
[Unknown]: WSO2
What is the name of your City or Locality?
[Unknown]: Ahangama
What is the name of your State or Province?
[Unknown]: Southern
What is the two-letter country code for this unit?
[Unknown]: LK
Is CN=Ruchira Wageesha, OU=Mashup Server, O=WSO2, L=Ahangama, ST=Southern, C=LK correct?
[no]: yes
Enter key password for
(RETURN if same as keystore password):

Once you successfully completed this, java keytool will create a file named "server.jks". In the same way, you can create a client keystore named "client.jks" with the alias "client" using following command.

keytool -genkey -alias client -keyalg RSA -keystore client.jks

Now, you have two files named client.jks and server.jks. You can view the content of these keystore files using the following command. Replacess "ruchira" with the keystore password you entered while creating the keystore.

keytool -list -v -keystore server.jks -storepass ruchira

This will list something like this.

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

Alias name: server
Creation date: Jul 8, 2010
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Ruchira Wageesha, OU=Mashup Server, O=WSO2, L=Ahangama, ST=Southern, C=LK
Issuer: CN=Ruchira Wageesha, OU=Mashup Server, O=WSO2, L=Ahangama, ST=Southern, C=LK
Serial number: 4c356225
Valid from: Thu Jul 08 10:59:09 IST 2010 until: Wed Oct 06 10:59:09 IST 2010
Certificate fingerprints:
MD5: 60:0B:48:0D:DB:56:8C:68:8C:2D:94:4A:D6:DA:04:B8
SHA1: A7:CE:57:10:70:87:C1:2C:C0:9D:1D:90:8C:BB:69:B6:66:26:97:13
Signature algorithm name: SHA1withRSA
Version: 3

*******************************************
*******************************************

The next step is, getting server's self signed public key certificate and storing it in client's keystore. And getting and storing client's self signed public key certificate in server's keystore. In order to do that, first we need to export both server and client public key certificates into files. Using the following command, you can export server's public key certificate into server.cert file and client's public key certificate into client.cert file.

keytool -export -file server.cert -keystore server.jks -storepass ruchira -alias server
keytool -export -file client.cert -keystore client.jks -storepass ruchira -alias client

Now you have server.cert and client.cert. You can use following commands to view certificate contents.

keytool -printcert -v -file server.cert
keytool -printcert -v -file client.cert

As the last step, we need to import server.cert into client keystore and client.cert into server keystore. As I mentioned earlier, each entry of a Java Keystore is stored against an alias. So, we need to specify aliases here, which will be used to refer the certificates that we are going to store.

keytool -import -file client.cert -keystore server.jks -storepass ruchira -alias client

Above command will store client's self signed public key certificate(client.cert) in server.jks against the alias "client". So, using "client" alias on server.jks, we can refer client's certificate anytime. Likewise, following command will store server.cert within client.jks against the alias "server".

keytool -import -file server.cert -keystore client.jks -storepass ruchira -alias server

After all, please view the content of both keystore again using following commands.

keytool -list -v -keystore server.jks -storepass ruchira
keytool -list -v -keystore client.jks -storepass ruchira

It will give you something like bellow for server.jks

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 2 entries

Alias name: server
Creation date: Jul 8, 2010
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Ruchira Wageesha, OU=Mashup Server, O=WSO2, L=Ahangama, ST=Southern, C=LK
Issuer: CN=Ruchira Wageesha, OU=Mashup Server, O=WSO2, L=Ahangama, ST=Southern, C=LK
Serial number: 4c3562a0
Valid from: Thu Jul 08 11:01:12 IST 2010 until: Wed Oct 06 11:01:12 IST 2010
Certificate fingerprints:
MD5: AB:77:72:F1:0D:09:55:E3:B6:D3:DC:A6:4D:D4:39:36
SHA1: D7:C1:60:5C:7E:34:40:A9:0B:E4:2C:65:6C:E0:79:7C:EE:37:A7:19
Signature algorithm name: SHA1withRSA
Version: 3

*******************************************
*******************************************

Alias name: client
Creation date: Jul 8, 2010
Entry type: trustedCertEntry

Owner: CN=Ruchira Wageesha, OU=Mashup Server, O=WSO2, L=Ahangama, ST=Southern, C=LK
Issuer: CN=Ruchira Wageesha, OU=Mashup Server, O=WSO2, L=Ahangama, ST=Southern, C=LK
Serial number: 4c356225
Valid from: Thu Jul 08 10:59:09 IST 2010 until: Wed Oct 06 10:59:09 IST 2010
Certificate fingerprints:
MD5: 60:0B:48:0D:DB:56:8C:68:8C:2D:94:4A:D6:DA:04:B8
SHA1: A7:CE:57:10:70:87:C1:2C:C0:9D:1D:90:8C:BB:69:B6:66:26:97:13
Signature algorithm name: SHA1withRSA
Version: 3

*******************************************
*******************************************

something like below for client.jks

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 2 entries

Alias name: server
Creation date: Jul 8, 2010
Entry type: trustedCertEntry

Owner: CN=Ruchira Wageesha, OU=Mashup Server, O=WSO2, L=Ahangama, ST=Southern, C=LK
Issuer: CN=Ruchira Wageesha, OU=Mashup Server, O=WSO2, L=Ahangama, ST=Southern, C=LK
Serial number: 4c3562a0
Valid from: Thu Jul 08 11:01:12 IST 2010 until: Wed Oct 06 11:01:12 IST 2010
Certificate fingerprints:
MD5: AB:77:72:F1:0D:09:55:E3:B6:D3:DC:A6:4D:D4:39:36
SHA1: D7:C1:60:5C:7E:34:40:A9:0B:E4:2C:65:6C:E0:79:7C:EE:37:A7:19
Signature algorithm name: SHA1withRSA
Version: 3

*******************************************
*******************************************

Alias name: client
Creation date: Jul 8, 2010
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Ruchira Wageesha, OU=Mashup Server, O=WSO2, L=Ahangama, ST=Southern, C=LK
Issuer: CN=Ruchira Wageesha, OU=Mashup Server, O=WSO2, L=Ahangama, ST=Southern, C=LK
Serial number: 4c356225
Valid from: Thu Jul 08 10:59:09 IST 2010 until: Wed Oct 06 10:59:09 IST 2010
Certificate fingerprints:
MD5: 60:0B:48:0D:DB:56:8C:68:8C:2D:94:4A:D6:DA:04:B8
SHA1: A7:CE:57:10:70:87:C1:2C:C0:9D:1D:90:8C:BB:69:B6:66:26:97:13
Signature algorithm name: SHA1withRSA
Version: 3

*******************************************
*******************************************

If everything went well, you might have successfully created server.jks and client.jks which can be used to secure Axis2 Services and access those secured services.



ゞ沉默是金ゞ 2012-06-26 19:15 发表评论
]]>
IE下Ajax~存问题的解军_?/title><link>http://m.tkk7.com/dashi99/archive/2010/08/26/329973.html</link><dc:creator>ゞ沉默是金ゞ</dc:creator><author>ゞ沉默是金ゞ</author><pubDate>Thu, 26 Aug 2010 07:17:00 GMT</pubDate><guid>http://m.tkk7.com/dashi99/archive/2010/08/26/329973.html</guid><wfw:comment>http://m.tkk7.com/dashi99/comments/329973.html</wfw:comment><comments>http://m.tkk7.com/dashi99/archive/2010/08/26/329973.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/dashi99/comments/commentRss/329973.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/dashi99/services/trackbacks/329973.html</trackback:ping><description><![CDATA[<p>今天下午在做要素面无刷新添加的时候,IE下遭遇Ajax~存戏弄Q因为刚开始ƈ不知道IE有这个坏毛病Q折腾了我一下午Q终于解决问题。郁闷之余,ȝ一下解军_法:<br /> <br /> </p> <p>在IE下用Ajaxh某一面Q通常会因为缓存的原因而返回上一ơ的l果Q造成混ؕQ而FF下不会出现这U情cؓ了不受缓存媄响,可以q样做:<br /> <br /> IE讉K{略QInternet选项--览历史记录--讄-- Internet 临时文g的选项改ؓ每次讉K|页时也可以</p> <p> </p> <p><font color="#339900"><strong>1: 在AJAXh的页面后加个随机函数,我们可以使用随机旉函数</strong> <br /> </font><br /> 在javascript发送的URL后加上t=Math.random() <br /> 例如q样:URL+"&"+"t="+Math.random();或者new Date();</p> <p><br /> <font color="#339900"><strong>2: 在XMLHttpRequest发送请求之前加上XMLHttpRequest.setRequestHeader("If-Modified-Since","0")</strong> <br /> </font><br /> 一般情况下,q里的XMLHttpRequest不会直接使用 <br /> 你应该可以找到这L代码 <br /> XXXXX.send(YYYYYY); <br /> 那么,把它变?<br /> XXXXX.setRequestHeader("If-Modified-Since","0"); <br /> XXXXX.send(YYYYYY);</p> <p>实践证明Q两U方法都非常有效?/p> <img src ="http://m.tkk7.com/dashi99/aggbug/329973.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/dashi99/" target="_blank">ゞ沉默是金ゞ</a> 2010-08-26 15:17 <a href="http://m.tkk7.com/dashi99/archive/2010/08/26/329973.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RPC?/title><link>http://m.tkk7.com/dashi99/archive/2010/07/26/327151.html</link><dc:creator>ゞ沉默是金ゞ</dc:creator><author>ゞ沉默是金ゞ</author><pubDate>Mon, 26 Jul 2010 08:21:00 GMT</pubDate><guid>http://m.tkk7.com/dashi99/archive/2010/07/26/327151.html</guid><wfw:comment>http://m.tkk7.com/dashi99/comments/327151.html</wfw:comment><comments>http://m.tkk7.com/dashi99/archive/2010/07/26/327151.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/dashi99/comments/commentRss/327151.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/dashi99/services/trackbacks/327151.html</trackback:ping><description><![CDATA[׃目的需要,了解了一下RPCQ分享给大家?br /> <br />   <p>RPC<span style="font-family: 宋体;">Q?/span>Remote Procedure Call Protocol<span style="font-family: 宋体;">Q?/span>—?span style="font-family: 宋体;">q程q程调用协议Q它是一U通过|络从远E计机E序上请求服务,而不需要了解底层网l技术的协议?/span>RPC<span style="font-family: 宋体;">协议假定某些传输协议?/span> <span style="font-family: 宋体;">存在Q如</span>TCP<span style="font-family: 宋体;">?/span>UDP<span style="font-family: 宋体;">Qؓ通信E序之间携带信息数据。在</span>OSI<span style="font-family: 宋体;">|络通信模型中,</span>RPC<span style="font-family: 宋体;">跨越了传输层和应用层?/span>RPC<span style="font-family: 宋体;">使得开发包括网l分布式多程序在内的</span> <span style="font-family: 宋体;">应用E序更加Ҏ?br /> <br /> <img alt="" src="http://m.tkk7.com/images/blogjava_net/dashi99/rpc1.JPG" border="0" /><br /> </span></p> <p style="text-align: left;" align="left"><strong><span style="font-size: 18pt; font-family: 宋体;">基本?/span></strong></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">RPC</span><span style="font-size: 12pt; font-family: 宋体;">采用客户?服务器模式。请求程序就是一个客hQ而服务提供程序就是一个服务器。首先,调用q程发送一个有q程参数的调用信息到服务q程Q然后等待应{信息。在服务器端Q进E保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进E参敎ͼ计算l果Q发送答复信息,然后{待下一个调 用信息,最后,</span><a target="_blank"><span style="font-size: 12pt; color: blue; font-family: 宋体;">客户?/span></a><span style="font-size: 12pt; font-family: 宋体;">?用过E接收答复信息,获得q程l果Q然后调用执行l进行?</span></p> <p style="text-indent: 24pt;"><span style="font-size: 12pt; font-family: 宋体;">目前Q有多种 RPC 模式和执行。最初由 Sun 公司提出。IETF ONC 宪章重新修订?Sun 版本Q?ONC PRC 协议成ؓ IETF 标准协议。现在用最普遍的模式和执行是开攑ּ软g基础的分布式计算环境QDCEQ?br /> </span></p> <h2> </h2> <h2>    <img alt="" src="http://m.tkk7.com/images/blogjava_net/dashi99/rpc2.JPG" border="0" /></h2> <h2>协议l构</h2> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">q程q程调用QRPC<sup>[1]</sup>Q信 息协议由两个不同l构l成Q调用信息和{复信息。信息流E如下所C: </span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  RPCQ远E过E调用流E?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  RPC 调用信息Q每条远E过E调用信息包括以下无W号整数字段Q以独立识别q程q程Q?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  E序PProgram numberQ?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  E序版本PProgram version numberQ?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  q程PProcedure numberQ?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  RPC 调用信息M形式如下Q?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  struct call_body { </span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  unsigned int rpcvers; </span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  unsigned int prog; </span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  unsigned int vers; </span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  unsigned int proc; </span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  opaque_auth cred; </span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  opaque_auth verf; </span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  1 parameter </span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  2 parameter . . . }Q?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  RPC {复信息QRPC 协议的答复信息的改变取决于网l服务器对调用信息是接收q是拒绝。答复信息请求包括区别以下情形的各种信息Q?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  RPC 成功执行调用信息? </span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  RPC 的远E实C是协议第二版Q返?RPC 支持的最低和最高版本号?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  在远E系l中Q远E程序不可用?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  q程E序不支持被h的版本号。返回远E程序所支持的最低和最高版本号?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  h的过E号不存在。通常是呼叫方协议或程序差错?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  RPC{复信息形式如下Q?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  enum reply_stat stat </span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  {MSG_ACCEPTED = 0, </span></p> <p style="text-indent: 23.25pt;"><span style="font-size: 12pt; font-family: 宋体;">MSG_DENIED = 1 }</span><span style="font-size: 12pt; font-family: 宋体;">Q?/span></p> <h2>工作原理</h2> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">q行?一ơ客hҎ务器的RPC调用,其内部操作大致有如下十步Q?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  1.调用客户端句柄;执行传送参?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  2.调用本地pȝ内核发送网l消?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  3.消息传送到q程L </span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  4.服务器句柄得到消息ƈ取得参数 </span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  5.执行q程q程 </span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  6.执行的过E将l果q回服务器句?</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  7.服务器句柄返回结果,调用q程pȝ内核 </span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  8.消息传回本地L</span></p> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  9.客户句柄由内核接收消?</span></p> <p style="text-indent: 23.25pt;"><span style="font-size: 12pt; font-family: 宋体;">10.</span><span style="font-size: 12pt; font-family: 宋体;">客户接收句柄q回的数?/span></p> <h2>RPC OVER HTTP</h2> <p style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">  Microsoft RPC-over-HTTP 部v(RPC over HTTP)允许RPC 客户端安全和有效地通过Internet q接到RPC 服务器程序ƈ执行q程q程调用。这是在一个名UCؓRPC-over-HTTP 代理Q或UCؓRPC 代理?/span><a target="_blank"><span style="font-size: 12pt; color: blue; font-family: 宋体;">中间?/span></a><span style="font-size: 12pt; font-family: 宋体;">的帮助下 完成的?</span></p> <span style="font-size: 12pt; font-family: 宋体;">  RPC 代理q行在IIS 计算Z。它接受来自Internet 的RPC hQ在q些h上执行认证,验和讉K查,如果h通过所有的试QRPC 代理请求{发给执行真正处理的RPC 服务器。通过RPC over HTTPQRPC 客户端不和服务器直接通信Q它们用RPC 代理作ؓ中间件?br /> </span> <img src ="http://m.tkk7.com/dashi99/aggbug/327151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/dashi99/" target="_blank">ゞ沉默是金ゞ</a> 2010-07-26 16:21 <a href="http://m.tkk7.com/dashi99/archive/2010/07/26/327151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java获取客户端真实IP地址的两U方?/title><link>http://m.tkk7.com/dashi99/archive/2010/07/07/325427.html</link><dc:creator>ゞ沉默是金ゞ</dc:creator><author>ゞ沉默是金ゞ</author><pubDate>Wed, 07 Jul 2010 03:01:00 GMT</pubDate><guid>http://m.tkk7.com/dashi99/archive/2010/07/07/325427.html</guid><wfw:comment>http://m.tkk7.com/dashi99/comments/325427.html</wfw:comment><comments>http://m.tkk7.com/dashi99/archive/2010/07/07/325427.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://m.tkk7.com/dashi99/comments/commentRss/325427.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/dashi99/services/trackbacks/325427.html</trackback:ping><description><![CDATA[  在JSP里,获取客户端的IP地址的方法是Qrequest.getRemoteAddrQ)Q这U方法在大部分情况下都是有效的。但是在通过? ApacheQSquid{反向代理Y件就不能获取到客L的真实IP地址了? <p>    如果使用了反向代理YӞ?font color="#333333">http://192.168.1.110</font>Q?046/ 的URL反向代理?<a id="Editor_Edit_hlEntryLink" title="view: Java获取客户端真实IP地址的两U方? href="../archive/2010/07/07/325427.html" target="_blank">http://m.tkk7.com/dashi99</a> / 的URLӞ用request.getRemoteAddrQ)Ҏ获取的IP地址是:127.0.0.1 或 192.168.1.110Q而ƈ不是? L的真实IP?/p> <p>    l过代理以后Q由于在客户端和服务之间增加了中间层Q因此服务器无法直接拿到客户端的IPQ服务器端应用也无法直接通过转发h的地址q回l客L。但? 在{发请求的HTTP头信息中Q增加了XQFORWARDEDQFOR信息。用以跟t原有的客户端IP地址和原来客Lh的服务器地址。当我们讉K<a id="Editor_Edit_hlEntryLink" title="view: Java获取客户端真实IP地址的两U方? href="../archive/2010/07/07/325427.html" target="_blank">http://m.tkk7.com/dashi99</a> Ӟ其实q不是我们浏览器真正讉KC服务器上的index.jsp文gQ而是先由代理服务器去讉K<font color="#333333">http://192.168.1.110</font>Q?046/index.jsp Q代理服务器再将讉K到的l果q回l我们的览器,因ؓ是代理服务器去访问index.jsp的,所以index.jsp中通过 request.getRemoteAddrQ)的方法获取的IP实际上是代理服务器的地址Qƈ不是客户端的IP地址?/p> <p>    于是可得得客L真实IP地址的方法一Q?/p> <p> </p> <table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"> <tbody> <tr> <td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="color: #808080;" twffan="done"><font color="#000000">public String getRemortIP(HttpServletRequest request) {<br />   if (request.getHeader("x-forwarded-for") == null) {<br />    return request.getRemoteAddr();<br />   }<br />   return request.getHeader("x-forwarded-for");<br />  }</font></span></td> </tr> </tbody> </table> <p>    可是当我讉K<a id="Editor_Edit_hlEntryLink" title="view: Java获取客户端真实IP地址的两U方? href="../archive/2010/07/07/325427.html" target="_blank">http://m.tkk7.com/dashi99</a> Ӟq回的IP地址始终是unknownQ也q不是如上所C的127.0.0.1 或 192.168.1.110了,而我讉K<font color="#333333">http://192.168.1.110</font>Q?046/index.jsp Ӟ则能q回客户端的真实IP地址Q写了个Ҏ去验证。原因出在了Squid上。squid.conf 的配制文件 forwarded_for w认是为onQ如?forwarded_for 设成?off  则:X-Forwarded-ForQ?unknown</p> <p>    于是可得得客L真实IP地址的方法二Q?/p> <p> </p> <table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"> <tbody> <tr> <td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="color: #808080;" twffan="done"><font color="#000000">public String getIpAddr(HttpServletRequest request) {<br />        String ip = request.getHeader("x-forwarded-for");<br />        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {<br />            ip = request.getHeader("Proxy-Client-IP");<br />        }<br />        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {<br />            ip = request.getHeader("WL-Proxy-Client-IP");<br />        }<br />        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {<br />            ip = request.getRemoteAddr();<br />        }<br />        return ip;<br />    }</font></span></td> </tr> </tbody> </table> <p>    可是Q如果通过了多U反向代理的话,X-Forwarded-For的值ƈ不止一个,而是一Ԍp|I竟哪个才是真正的用L的真实IP呢?</p> <p>    {案是取X-Forwarded-For中第一个非unknown的有效IP字符丌Ӏ?/p> <p>    如:X-Forwarded-ForQ?92.168.1.110Q?192.168.1.120Q?192.168.1.130Q? 192.168.1.100用户真实IP为: 192.168.1.110</p> <img src ="http://m.tkk7.com/dashi99/aggbug/325427.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/dashi99/" target="_blank">ゞ沉默是金ゞ</a> 2010-07-07 11:01 <a href="http://m.tkk7.com/dashi99/archive/2010/07/07/325427.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>什么是RFC?http://m.tkk7.com/dashi99/archive/2010/07/07/325419.htmlゞ沉默是金ゞゞ沉默是金ゞWed, 07 Jul 2010 01:34:00 GMThttp://m.tkk7.com/dashi99/archive/2010/07/07/325419.htmlhttp://m.tkk7.com/dashi99/comments/325419.htmlhttp://m.tkk7.com/dashi99/archive/2010/07/07/325419.html#Feedback1http://m.tkk7.com/dashi99/comments/commentRss/325419.htmlhttp://m.tkk7.com/dashi99/services/trackbacks/325419.htmlRFC及RFC~辑?/h3>   Request For Comments (RFC)Q是一pd以编h定的文g。文件收集了有关因特|相兌讯,以及UNIX和因特网C的Y件文件。目前RFC文g是由Internet SocietyQISOCQ所赞助发行?
  基本的因特网通讯协定都有在RFC文g内详l说明。RFC文gq额外加入许多的论题在标准内Q例如对于因特网新开发的协定及发展中所有的记录。因此几乎所有的因特|标准都有收录在RFC文g之中?
  RFC(Request For Comments)-意即“h评议”Q包含了关于Internet的几乎所有重要的文字资料。如果你x为网l方面的专家Q那么RFC无疑是最重要也是最l常需要用到的资料之一Q所以RFC享有|络知识圣经之美誉。通常Q当某家机构或团体开发出了一套标准或提出ҎU标准的设想Q想要征询外界的意见Ӟ׃在Internet上发放一份RFCQ对q一问题感兴的人可以阅读该RFCq提q意见Q绝大部分网l标准的指定都是以RFC的Ş式开始,l过大量的论证和修改q程Q由主要的标准化l织所指定的,但在RFC中所收录的文件ƈ不都是正在用或为大家所公认的,也有很大一部分只在某个局部领域被使用或ƈ没有被采用,一份RFC具体处于什么状态都在文件中作了明确的标?
  RFC׃pd草案l成Qv始于1969q_W一个RFC文档发布?969q??日,参见“RFC30q?#8221;QRFC2555”Q,RFC文档是一pd关于InternetQ早期ؓARPANETQ的技术资料汇~。这些文档详l讨Z计算机网l的Ҏ面面Q重点在|络协议Q进E,E序Q概念以及一些会议纪要,意见Q各U观点等?
  “RFC~辑?#8221;是RFC文档的出版者,它负责RFC最l文档的~辑审订?#8220;RFC~辑?#8221;也保留有RFC的主文gQ称为RFC索引Q用户可以在U检索。在RFCq?0q的历史中,“RFC~辑?#8221;一直由U翰•普斯特尔QJon PostelQ来担QQ而现?#8220;RFC~辑?#8221;则由一个工作小l来担QQ这个小l受?#8220;因特|社?#8221;QInternet SocietyQ的支助?
  RFC~辑者负责RFC以及RFC的整体结构文档,q维护RFC的烦引。Internet协议族的文档部分Q由Internet工程委员?#8220;因特|工E师dl?#8221;IETF以及IETF 下属?#8220;因特|工E师指导l?#8221;IESG 定义Q,也做为RFC文档出版。因此,RFC在Internet相关标准中有着重要的地位?
  RFC~辑者的职责是由Internet 中的大家提议形成的,所出版的语a也就和Internet一栗IETF和ISOC是代表了世界各地的国际性组l,p是IETF的第一工作语言Q也是IETF的正式出版语a。RFC 2026 "The Internet Standards Process -- Revision 3" 允许RFC译成其他不同的语言。但是不能保证其译版本是否正确。因此,RFC~辑不对非英语的版本负责Q而只是指明了哪里有非p的版本,这些信息列在WEB上?

RFC处理q程

  一个RFC文g在成为官Ҏ准前一般至要l历4个阶DcRFC2026】:q|草案、徏议标准、草案标准、因特网标准?
  W一步RFC的出版是作ؓ一个Internet 草案发布Q可以阅dƈ对其q行注释。准备一个RFC草案Q我们要求作者先阅读IETF的一个文?Considerations for Internet Drafts". 它包括了许多关于RFC以及Internet草案格式的有用信息。作者还应阅d外一个相关的文档RFC 2223 "Instructions to Authors"?
  一旦文档有了一个ID号后Q你可以向rfc-editor@rfc-editor.org发送e-mail Q说你觉得这个文档还可以Q能够作Z个有价值或有经验的RFC文档 。RFC~辑会向IESGh查阅该文档ƈl其加上评论和注释。你可以通过RFC队列来了解你的文档的q度。一旦你的文档获得通过QRFC~辑׃其~辑q出版。如果该文档不能出版Q则会有email通知作者是什么原因。作者有48个小时来校对RFC~辑的意见。我们强烈徏议作者要拼写错误和丢字的错误,应该保有引用,联系和更新相关的信息。如你的文档是一个MIBQ我们则要你对你的代码作最后一ơ检。一旦RFC文档出版Q我们就不会对其q行更改Q因此你应该对你的文档仔l的查?
  有时个别的文档会被正从事同一个项目的IETF工作l收回,如是q种情况Q则该作者会被要求和IETFq行该文档的开发。在IETF? Area Directors (ADs) 负责相关的几个工作组。这些工作者所开发的文档由ADs q行校阅Q然后才作ؓRFC的出版物?
  如要获得关于如何写RFC文档和关于RFC的Internet标准制定q程的更多详l信息,请各位参见:
  RFC 2223 "Instructions to RFC Authors"?
  RFC 2026 "The Internet Standards Process -- Revision 3"?
  实际上,在Internet上,M一个用户都可以对Internet某一领域的问题提q解决Ҏ或规范,作ؓInternet草案QInternet DraffsQIDQ提交给Internet工程dl(IETFQ。草案存攑֜国、欧z和亚太地区的工作文件站点上Q供世界多国自愿参加的IETF成员q行讨论、测试和审查。最后,由Internet工程指导l(IESGQ确定该草案是否能成为Internet的标准?
  如果一个Internet草案在IETF的相关站点上存在6个月后仍未被IESG作ؓ标准发布Q则它将被从上述站点中删除。事实上Q在M时候,一个Internet 草案都有可能被新的草案版本所替换掉,q新开?个月的存放期?
  如果一个Internet草案被IESG定为Internet的正式工作文Ӟ则被提交lInternet体系l构委员会(IABQ,qŞ成具有顺序编LRFC文档Q由Internet协会QISOCQ通过Internet向全世界颁布。每个Internet标准文g在被批准后都会分配一个独立于RFC的永久编Pq就是STD~号。有一个不断被更新的文件RFC-INDEX.TXT按照RFC的编h索引所有的文gQ对于因特网标准文gq列Z其相应的STD~号?
  RFC文档必须被分配RFC~号后才能在|络上发布。例如,RFC2026的内Ҏ“Internet标准q程-修订?”、RFC1543的内容ؓ“RFC作者指?#8221;{等。需要时Q可以复制或打印q些联机文档。用户也可以通过遍布全世界的C联机资料数据库中获得RFC文档。例如,可以使用路径名RFC/RFCnnnn.TXT通过FTP的方式从ds.internic.net站点获得RFCQ其?#8220;nnnn”指的是RFC的编受在q里Q用FTPdӞ所用的用户名和口o分别?#8220;anonymous”和你的电子邮件地址。此外,用户q可以通过Internet|络信息中心QInterNICQ的目录服务功能、电子邮件、WWW{方式获得RFC文档.
  作ؓ标准的RFC又分为几U,W一U是提议性的Q就是说采用q个作ؓ一个方案摆出来QDraft是已l有一部分在用了,希望被采用ؓ正式的标准,q有一U就是完全被认可的标准,q种是大安在用Q而且是不应该改变的。还有一U就是现在的最佛_跉|Q它相当于一U介l。这些文件生的q程是一U从下往上的q程Q而不是从上往下,也就是说不是一个由dQ或者由工作l负责h的给一个指令,说是要做什么,要做什么,而是有下边自发的提出Q然后在工作l里边讨论,讨论了以后再交给刚才说的工程指导委员会进行审查。但是工E指导委员会只做审查不做修改Q修改还是要打回到工作组来做。IETF工作l文件的产生是M人都可以来参加会议,M人都可以提议Q然后他和别行讨论,大家形成了一个共识就可以产出q样的文件?

RFC的历?/h3>   RFC文g格式最初作为ARPA|计划的基础h?969q。如今,它已l成为IETF、Internet Architecture Board (IAB)q有其他一些主要的公共|络研究C֌的正式出版物发布途径?
  最初的RFC作者用打字机撰写文档Qƈ在美国国防部国防前沿研究目|ԌARPAQ研I成员之间传阅?969q?2月,他们开始通过ARPANET途径来发布新的RFC文档。第一份RFC文档由洛杉矶加利尼亚大学(UCLAQ的Steve Crocker撰写Q在1969q??日公开发表的RFC 1。当初CrockerZ避免打扰他的室友Q是在ʎ室里完成q篇文档的?
  ?970q代Q很多后来的RFC文档同样来自UCLAQ这不仅得益于UCLA的学术质量,同时也因为UCLA是ARPANETW一批Interface Message Processors (IMPs)成员之一?
  由Douglas Engelbart领导的,位于Stanford Research Institute的Augmentation Research Center (ARC)是四个最初的ARPANETl点之一Q也是最初的Network Information CentreQ同时被C会学家Thierry Bardini记录为早期大量RFC文档的发源地?
  ?969q到1998q_Jon Postel一直担任RFC文档的编辑职务。随着国政府赞助合同的到期,Internet Society(代表IETF)Q和南加州大?QUSCQInformation Sciences Institute的网l部门合作,Q在IAB领导下)负责RFT文档的v草和发布工作。Jon Postell箋担QRFC~辑直到M。随后,由Bob Braden接Q整个目的领D务,同时Joyce Reynoldsl箋在团队中的担任职务?
  庆祝RFC?0周年的RFC文g是RFC 2555?

RFC文g的架?/h3>   RFC文g只有新增Q不会有取消或中途停止发行的情Ş。但是对于同一主题而言Q新的RFC文g可以声明取代旧的RFC文g。RFC文g是纯 ASCII文字档格式,可由电脑E式自动转档成其他档案格式。RFC文g有封面、目录及首尾和页码。RFC的章节是数字标示Q但数字的小数点后不补零Q例?.9的顺序就?.10前面Q但9的前面ƈ不补零。RFC1000q䆾文g是RFC的指南?

RFC文g的?/h3>   RFC文g是由Internet Society审核后给定编号ƈ发行。虽然经q审核,但RFC也ƈ非全部严肃而生的技术文Ӟ偶有恶搞之作出现Q尤其是4?日愚所发行的,例如RFC 1606: A Historical Perspective On The Usage Of IP Version 9 Q参见IPv9Q、RFC 2324: “文本咖啡壶控制协议”QHyper Text Coffee Pot Control Protocol, 乍有其事的写了HTCPCPq样看v来很专业的术语羃写字Q。以及如前面所提到U念RFC?0周年庆的RFC文g?

一些相关网址

  截至2001q中期,公布的RFC大约?000余篇Q以下是几个较ؓE_的RFC|址Q以及几个重要的标准化组l的|站|址
  http://www.rfc.net RFC的官方站点,可以查RFC最及时的更新情?
  http://www.ietf.org 最重要的Internetl织之一
  http://sunsite.dk RFC查询非常强大(可以以FTPd下蝲全部RFC文档)
  http://www.iso.ch ISO-国际标准化组l?
  http://standards.ieee.org IEEE-甉|与电子工E师协会
  http://web.ansi.org ANSI-国国家标准化组l?
  http://www.itu.int ITU-国际电信同盟
  中文|站:
  http://www.cnpaf.net/ 中国协议分析|?
  http://www.cangfengzhe.com/cdrfc/list_67.html 中文RFC集合

RFC发展历程

  1969q?S·Crocker首先建立了RFC机制,其目的是建立一U快速共享Internet|络研究思想的方?最初RFC是以书面形式分发?后来有了FTP、Email,RFC׃在线电子文本的Ş式提?当然现在通过WWW在很多站点可以很方便地访问RFC文档?RFC一直以来主要是用于Internet的标准化,RFC是Internet开放性的产物,M人都可以讉KRFC,Internetq一致力于信息共享的|络首先׃n的就是以RFC形式出现的涉及其自n研究、设计和使用的信息。这一独特的方式对于Internet的发展、完善具有相当关键的作用。发展到现在,RFC文档已不仅仅是关于Internet标准的文档了,而且也不局限于TCP/IP范围,它几乎包含了与计机通信有关的Q何内?全面反映Internet研究、发展的q程?RFC主要是IAB、IETF、IESG、ISOC的工作成?主要由IETF赯,由IAB指导下的RFC ~辑(Editor)直接负责RFC的发表。每一个RFC文档有一个编?q个~号怸重复,也就是说,׃技术进步等原因,即是关于同一问题的RFC,也要使用新的~号,而不会用原来的~号,时至今日,RFC~号已经排到2200?在查找RFC?一定要注意最新的RFC?

RFC的分c?/h3>   RFC文档大致可以分ؓ以下几类?
  1.STD RFC
  按照RFC1311的定?STD RFC是指那些已经或者致力于成ؓInternet标准的RFC。只有经q完全Internet标准化过E的RFC才可以有STD~号,STD~号是不变的,而其涉及到的 RFC文档可能不只一?其RFC~号也会更新。如STD13(Domain Name System)涉及RFC1 034和RFC1035?STD的标准化q程要经q几个步?首先由IETF赯标准(也可能是其他l织和个? 但一般都是和IETF共同完成?,形成Internet Draft(ID),ID没有RFC~号。如果ID?个月内IESG没有成ؓRFC,则取消此ID。成为RFC?q要l过一pd的审查、修订、测试等才能最l成为Internet标准?
  2.BCP RFC
  ׃Internet应用领域q泛,各种不同的组l有不同的用目的和使用规则,IETF除了STD以外,也有必要对于Internet的用和理提供一些一般性的指导,同时也ؓI ETF、IAB、IESG提供一U渠?以便推动某一斚w的工?反映其技术趋?反映q些l织本n的工作进展。于?1995q以RFC1818定义了BCP,即Best Current Practice。BCP同时有一个BCP~号和一个RFC~号,一旦约定了一个BCP~号,׃会再?而其RFC~号则可能会l过修订不断更新。例如反映Internet标准化工作程序的BCP9的RFC~号׃RFC16 02上升到RFC2026,相应地就废弃了RFC1602?BCP在发表以?以电子邮件的形式q泛征求IETF的意?l过IESG的审?通过后即正式发表。但是BCP本n不是Internet标准?
  3.FYI RFC
  FYI是For Your Information的简?1990q发表的RFC1150(FYI1)定义了FYI,FYI也同时有一个FYI~号和一个RFC~号,FYI~号是固定的。FYI主要是提供有关Internet的知识性内宏V如FYI4(RFC1594),"Answers to Commonly asked New Internet User Quest ions"。所有的FYI在提交到RFC~辑以前,必须先经qIETF的User Services WorkingGro up审查?
  4.其他RFC
  除了STD、BCP、FYI以外q有其他一些RFC。从RFC899开?所有以99l尾的RFC都是Ҏ?9个RFC的一个概括。如RFC1999是对RFC1900到RFC1999的一个简单概括。除了上q分cM?q有一些描qRFC的方法。与Internet标准化过E?Internet Standards Process)有关的规范可以分Zc??Technical Specification(TS),Applicability Statement(AS)。TS是对协议、规则、格式、实用程序的描述。AS是描q在何种环境,以及怎样在Internet中用TS;AS所涉及的ƈ不一定全是Internet标准,比如IEEE、ITU、ISOl织的一些标?大家所熟悉的ASCII标准是一例。AS应该对其涉及的TS规定相应的?Requirement Level",q些"Require ment Level"如下: ·Required(Req),相当于必d?如IP、ICMP; ·Recommended(Rec),鼓励使用,如TELNET; ·Elective(Elc),可选择? ·Limited Use,只限于特定的用户,一般说来用于对一些新的协议做试验; ·Not Recommended,不要使用,很可能是q时的?"Maturity Level"也是用来描述TS和AS的一U方?它反映这些标准是否成熟。对于致力于成ؓSTD的TS和AS有三U?Maturity Level"?·Proposed Standard,基本成熟,但还需要进一步的试验证实其可行性。除非是用来验证该协议的可行?不要其视ؓ标准实现?·Draft Standard,需要两个独立的,而且h怺操作性的实例验证该协议的每一个方面。可以将其视为最l的标准草案; ·Internet Standard,最l的Internet标准,同时赋予一个STD~号。除此之外的TS和AS分ؓ以下几种"Maturity Level"?·Experimental,一般是反映一些研I和开发的成果,只应此看作是一般性的信息?·Informational,反映与Internet标准有关的一般性信息。有些也是有关非Intern etl织开发的一些协?但必d到协议开发者的许可?·Historic,是一些被新的标准取代或者是已经q时废弃不用的标准?STD1(RFC2200)——Internet Official Protocol Standards,定期更新,反映最新的 Internet标准。另?对于xInternet的h来说,应该l常注意查阅BCP9的最新内宏V?img src ="http://m.tkk7.com/dashi99/aggbug/325419.html" width = "1" height = "1" />

]]> վ֩ģ壺 һ| avѸ߳ˮ| ŷպav| avҹӰ߹ۿ| ůůձ| avרav | 67194ֻѹۿ| ˳ӰԺ| Ļ߳վ| ձ˳Ļ| õ998Ƶѹۿ| ޾Ʒ߹ۿ| ߲| jzzjzzѹۿƬ| ޾Ʒþǧն| Ʒһģʽ| þAV| ѿԿƵƵsɫ| þþƷAV| רһvav| ȫƵѹۿӾ| þAVӰ| ɫվav| ˾Ʒ| պþ| 91ȳ˾Ʒ| AV˾Ʒպ| þֹƷۺ| 51ƵѹۿƵ| ޾ƷþþþAPP| Ļֻ| ҹƷ߹ۿ| С˵ͼۺ| þþƷ7777| 99ƷƵ| Ƶ| ۺС˵þ| Ļվѹۿ| žŮվ| ޹Һ2020| ޹һaëƬ|