自分で逆さにする小さなHTTPガジェット


小さいツールといえば、実は簡単なHTTPリクエストツールで、urlを通じてホームページのソースコードを取得して、以前はずっとhttpclientを使っていましたが、後で退屈で自分でsocketで1つ書き直して、いくつかの簡単な額の機能を実現して、一時的にpostとgetの方法を提供して、cookiesの記憶機能を持って、よく使われるhttp 1.0と1.1のプロトコルをサポートします.復号方式は一時的にgzipの復号のみを行い,ウェブページの文字フォーマットを自動的に認識し,中国語の文字化けしの悩みを省くことができる.
        完成したばかりなので、基本的にはバグがたくさんあります.小さな成果を出して、レンガを撮ってください.tcpやhttpやsocketに興味のある人がいたら、私を信じて、みんなで交流してください.
        グループは添付ファイルを参照してください.
        使用例は次のとおりです.
 
	public static void main(String[] args) throws NumberFormatException, UnknownHostException, IOException, FPHttpException{
		// FPRequest   http      
		FPRequest request = new FPRequest("http://news.qq.com");
		// FPHttpclient HTTP          
		FPHttpclient client = new FPHttpclient();
		// FPResponse         
		FPResponse response  = 	client.req(request); 
		//   HTTP   
		System.out.println(response.getStream());
	}

     実行するとQQニュースのページの結果が表示されます.
 
 
-----------------------------------------------------------------------------------------------------
 
    それから友达が私に闻いて、HTTP 1.0と1.1の区别はどれらがあって、私は考えて、いくつか私の日常の仕事の中で接触したことを羅列して、もちろんとてもそろっていません、みんなは补充することができます.
    a:1.0は短い接続を使用しますが、1.1は同じサイトに対して長い接続を使用します.私たちのプログラムでは、http 1.1の多くはContent-lengthとchunked方式でWebソースコードを受信していますが、1.0の場合、-1を読み取ったときにWeb受信が完了したことを認識し、-1は実際には接続終了フラグです.1.1では,要求ヘッダ/応答ヘッダにより生存時間を設定してもよい.
    b:1.1多くのhttpヘッダが追加され、最も明らかなのはhostであり、host属性が最大の問題を解決できるのは、1つのipの下で複数の異なるドメイン名のウェブサイトを配置できることです.    c:  1.0以前は1回に1つのウェブリクエストしか処理できなかったが、1.1回に複数の接続を同時に処理できるようになったが、ここでは制限があり、一般的には1つのドメイン名で最大2つの接続を同時に確立して同時処理するしかない.
    d:1.1認証メカニズムが追加されました.
    e:1.1ブレークポイントの継続をサポートし、rangeプロパティがあり、サーバに今回指定された場所からファイルを受信したいことを伝えるために使用されます.
 
   皆さん、引き続き補充してください.