Httpプロトコル応用


Httpプロトコル応用
Http応答
応答行トランスフォームコードトランスファコード
対応する場合
100-199
サーバはクライアント要求を正常に受信しましたが、クライアントが要求プロセス全体を完了するために要求を送信し続ける必要があります.
200-299
200成功処理
300-399
302:他の人を探して、応答ヘッダにlocation属性が必要です.304、307:キャッシュを探します.つまり、キャッシュにページがあります.
400-499
403:ページは存在するが、ユーザーはアクセスできない.404:このページはありません
500-599
500:サーバ内部エラー
応答ヘッダレスポンスヘッダ
意味
Server
サーバ情報
Content-Length
レスポンスコンテンツの長さ
Content-Encoding
サーバコンテンツの圧縮フォーマット
Content-Type
サーバコンテンツのフォーマット、例えばtext/html;image/jpeg
location
ステータスコード302に用いられ、他人のアドレスを表す
Content-disposition
戻ってきたデータのダウンロード
Transfer-Encoding
ブロックで転送するかバイトで転送するか
Date
時間
refresh
タイム・リフレッシュまたはリダイレクト
Last-Modified
最後に変わった時間
Expires
-1または0はキャッシュなし
ETag
各ウェブリソースにはラベルがあり、ウェブリソースの内容が変更されると、ラベルが変更されます.
アプリケーション1:locationリダイレクト
response.setStatus(302);  
response.setHeader("location","http://localhost:8080/a/1.html");

アプリケーション2:content-Encoding圧縮データ
response.setHeader("content-encoding","gzip"); ByteArrayOutputStream bout = new ByteArrayOutputStream();  
  
GZIPOutputStream out = new GZIPOutputStream(bout);  
  
out.write("Hello".getBytes()); 
  
out.close(); byte[] b = bout.toByteArray();  
  
response.getOutputStream().write(b);

アプリケーション3:content-disposition(ダウンロード)
response.setHeader("content-disposition","attachment;filename=1.jpg");

適用4:refresh(リフレッシュ)
response.setHeader("refresh","3");  //           
response.setHeader("refresh","3;url='http://localhost:8080/1.html'"); //    

適用5:content-typeが返すデータ型;
publicvoiddoGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
        response.setHeader("content-type", "image/ipeg");  
        InputStream in = this.getServletContext().getResourceAsStream("/1.jpg");  
        java.io.OutputStream out = response.getOutputStream();  
        byte[]b = newbyte[1024];  
        int length = 0;  
        while((length=in.read(b))>0){  
            out.write(b, 0, length);  
        }  
        out.close();  
      
    }