コンテンツ

    サーバー応答 100 Continue

    HTTP ステータスコード 100 (Continue) の詳細

    HTTP ステータスコード 100 (Continue) は、初期リクエストの一部が正常に受信されたことを示す一時的なコードです。このコードを受け取ることで、クライアントはリクエストの本体を送信することができます。大きなデータ量を扱う場合において、このコードの使用は非常に有用です。

    100 - Continue

    基本的な概念

    • ステータスコード 100 (Continue) の定義
    • このコードが使用されるシチュエーションとその理由

    実践的な使用例

    例 1: 大きなファイルの送信

    クライアントが大きなファイルを送信する際、サーバーからステータスコード 100 を受け取ることがあります。この場合、クライアントはファイルの本体を続けて送信することができます。

    このコードを使用することで、ファイルアップロードの効率が向上します。特に大きなファイルの場合、サーバーが受け入れ可能かどうかを確認することができるため、無駄なデータ転送を避けることができます。

    例 2: ヘッダーの確認

    このコードは、サーバーがリクエストヘッダーを確認し、期待通りである場合にのみデータの送信を許可するために役立ちます。これにより、クライアントは無駄なデータを送信せずに済みます。

    ステータスコード 100 に関連するエラーの修正方法

    Python の例

    サーバーがステータスコード 100 を返さない場合、クライアントは次のように実装することができます。Python の requests ライブラリを使用して、リクエストを送信する際にこのコードを処理します。

    import requests
    
    response = requests.post('https://example.com/upload', data=large_file, allow_redirects=False)
    if response.status_code == 100:
        # 次のステップに進む
    

    Java の例

    Java でも同様の問題が発生することがあります。HttpURLConnection を使用して、サーバーがステータスコード 100 を返さない場合の処理方法を説明します。

    HttpURLConnection connection = (HttpURLConnection) new URL("https://example.com/upload").openConnection();
    connection.setRequestMethod("POST");
    connection.setDoOutput(true);
    
    // ヘッダーを設定する
    connection.setRequestProperty("Expect", "100-continue");
    connection.connect();
    
    // ステータスコードを確認
    if (connection.getResponseCode() == 100) {
        // データを送信する準備をする
    }
    

    JavaScript の例

    ブラウザ内でのステータスコード 100 の処理について、XMLHttpRequest または fetch を使用した例を示します。適切にサーバーの応答を処理し、リクエストを続行する方法を説明します。

    fetch('https://example.com/upload', {
        method: 'POST',
        body: largeFile,
        headers: {
            'Expect': '100-continue'
        }
    })
    .then(response => {
        if (response.status === 100) {
            // リクエストを続行する
        }
    });
    

    ベストプラクティス

    • ステータスコード 100 の使用に関する推奨事項
    • クライアントとサーバーの実装における問題回避方法

    よくある質問

    1. ステータスコード 100 を受け取った場合、クライアントはどのように振る舞うべきですか?
    2. サーバーがステータスコード 100 をサポートしていない場合、どうすればよいですか?
    言語 ライブラリ コード例
    Python requests response = requests.post(...)
    Java HttpURLConnection connection.setRequestProperty("Expect", "100-continue");
    JavaScript fetch fetch(..., { headers: { 'Expect': '100-continue' } });