印刷ジョブ完了確認 (DELETE)
クライアントはサーバーに印刷ジョブの完了を通知します。これは http DELETE 要求の発行によって行われ、サーバーに現在のジョブを消去することを通知します。クエリ文字列は http GET 要求と同等になりますが、”code”パラメータが付加され、”type”パラメータはなくなります。DELETE 要求はクライアントによって完了した、または処理できない印刷ジョブを消すために使用されます。サーバーはその違いを特定するために”code”パラメータを確認してください。
印刷ジョブ成功
印刷が正しく完了した場合、クライアントは"code"パラメータを"200 OK"として DELETE 要求をサーバーに送信し、"pid" と "mac" パラメータは GET 要求の処理と同じものとします。次にクライアントは POST 要求による通常のポーリングを始めます。
印刷失敗またはエラー
印刷に失敗した場合、または印刷中にエラーが発生した場合、クライアントは下記のパターンに従います。
- 関連するプリンタステータスコードを付けて POST 要求をサーバーに送る。ステータスが OK(“2”から始まる)ではない場合、サーバーは印刷が成功しなかったと認識します。
- クライアントがプリントデータに関連した失敗ではないと認識した場合、通常のポーリングに入ります。プリンタの問題が解決して再びオンラインになった時、ジョブデータがサーバーに残っていれば再び GET 要求によるジョブの取得を試みます。
- クライアントが有効な印刷ジョブを扱うことが出来ないための印刷失敗であったと認識した場合、DELETE 要求を送ります。その際に、対応する"code"をプリンタステータスコード章で述べられたコードとします。 DELETE 後、クライアントは通常の POST ポーリングを再開します。
CloudPRNTにおけるクライアントからのDELETEリクエストに対する、サーバーからのレスポンスの設定項目は以下を参考に設定してください。
レスポンスヘッダー | レスポンスBody |
---|---|
HTTPステータスコード | 無し (JSONデータは含みません) |
尚、サーバーからのDELETE応答に関する各HTTPレスポンスステータスコードを受け取り後のプリンタの動作例は下記となります。
ステータスコード | プリンタ動作 |
---|---|
200 / 200以外 | サーバーポーリング(POST)を発行します。 |
ネットワークの信頼性とリクエストの再送信
もし DELETE 要求(もしくは代替方法の GET 要求)に対するサーバーからのレスポンスの受信を失敗した場合、クライアントはそのリクエストの再送信を行います。
この機能は mC-Print2/3 ファームウェアバージョン 1.2 以降でサポートされています(リトライ回数は 3 回)。これはリクエストが時々ロストしてしまうような信頼性の低いネットワークでの防護策を提供します。しかし、完全なサーバネットワークの障害による不安定性の場合、サーバーが常に最終的な DELETE 要求を受け取るとは限りません。
サーバーは、定期的なポーリング(POST)要求の”printingInProgress”フィールドを監視することによって、DELETE 要求が失敗している状況をさらに補足することもできます。
もし DELETE もしくはエラーステータスコード付きの POST を受け取ってないにもかかわらず、この”printingInProgress”フィールドが true から false に変わった時、サーバーはクライアントからの http リクエストがロストしたこと、及び印刷が完了したことを推測することが出来ます。
印刷ジョブ完了確認の代用 (GET)
ある WEB サーバーはサーバー側の CGI スクリプトを経由した http DELETE 要求をサポートしていません。そのため、代用的な方法が提供されます。このモードをサーバーが要求すると(詳しくはJSONレスポンス (POST)章を参照してください)、クライアントは DELETE 要求の代わりに http GET 要求を送ります。クライアントは“delete”をクエリ文字列パラメータとして付加するため、この要求はジョブダウンロード GET 要求とは異なります。尚、他のクエリ文字列と動作は通常の DELETE 要求と同等になります。