[2] 
[DFN[[RUBYB[プッシュメッセージ受領証][push message receipt]]]]は、
[[プッシュサービス]]から[[アプリケーションサーバー]]へ送信される[RUBYB[メッセージ配送確認です][message delivery confirmation]]。
[SRC[>>1 1.1.]]

[15] 
[[仕様書]]ではほかに
receipt、
delivery receipt,
push receipt,
receipt of the message
receipt of the push message
と呼んだり、
機能として
delivery confirmation
と呼んだりしています。
[[利用者エージェント]]がこれを送信することを
acknowledge 
と呼んでいます。



[REFS[
- [1] [CITE@en[RFC 8030 - Generic Event Delivery Using HTTP Push]], [TIME[2020-03-09 00:13:33 +09:00]] <https://tools.ietf.org/html/rfc8030>
]REFS]


[3] 
[DFN[[RUBYB[受領証購読資源][receipt subscription resource]]]]
([[リンク関係型]] [DFN[[CODE[urn:ietf:params:push:receipt]]]])
は、
[[アプリケーションサーバー]]が[[プッシュメッセージ]]の配送確認を受信するものです。
[SRC[>>1 2.1.]]

[4] 
[[アプリケーションサーバー]]は、
[[プッシュ資源]]への[[要求]]
([[プッシュメッセージ]]の送信)
で、
配送確認を要求できます。
[[アプリケーションサーバー]]は[[受領証購読資源]]を作成し、
[[応答]]で通知します。
[SEE[ [[プッシュメッセージの送信]] ]]

[5] 
[[プッシュサービス]]は、
[RUBYB[配送確認][delivery confirmation]]に対応しなければ[MUST[なりません]]
[SRC[>>1 5.1.]]。
[[アプリケーション]]は[[プッシュメッセージ資源]]に
[CODE[DELETE]]
[[要求]]を送信し、受領を肯定します。
それを踏まえて[[プッシュサービス]]は[[アプリケーションサーバー]]に適切に[[応答]]します。


[13] 
[[プッシュサービス]]は、
[[受領証購読]]を終了 ([[満期]]) できます。
[SRC[>>1 7.3.]]

-*-*-


[10] 
[[アプリケーションサーバー]]は、
[[受領証購読資源]]に対し、
[CODE[GET]]
[[要求]]を送信して[[受領証]]の配送を要求します。
[SRC[>>1 6.3.]]

-*-*-

[12] 
[[プッシュサービス]]は、
[[受領証購読資源]]が[[満期]]の場合、
[CODE[404]]
[[応答]]を返さなければ[MUST[なりません]]。
[SRC[>>1 7.3.]]

-*-*-


[31] 
[[プッシュサービス]]は、
[[要求]]に対して[[応答]]しません。
[[HTTP/2 server push]]
によって[[受領証]]を送信します。
[SRC[>>1 6.3.]]

[40] 
[[プッシュサービス]]は、[[受領証]]ごとに、
[CODE[PUSH_PROMISE]]
で
[CODE[GET]] [[要求]]を[[利用者エージェント]]に送信します。
この [CODE[GET]]
[[要求]]は、
[[プッシュメッセージ資源]]を取得するものです。
[SRC[>>1 6.3.]]

[11] 
それに対する[[応答]]は、
[[プッシュメッセージ]]配送の結果を表します。データは含みません。
[SRC[>>1 6.3.]]

[6] 
配送確認を受け取れるかどうかは [CODE[TTL:]] の影響を受けます。

[7] 
[CODE[Topic:]] の重複により置き換えられた古い[[プッシュメッセージ]]については、
[[利用者エージェント]]から遅れて配送肯定が届いても、
受領証は抑制する[SHOULD[べきです]]。
[SRC[>>1 5.4.]]

[8] 
[[プッシュサービス]]は、
[[プッシュメッセージ応答]]が [CODE[DELETE]]
された場合、 
[[アプリケーションサーバー]]に
[CODE[204]]
[[応答]]を返さなければ[MUST[なりません]]。
[SRC[>>1 6.2., 6.3.]]

[9] 
[[プッシュサービス]]は、
[CODE[TTL:]] 到来前に[[プッシュメッセージ]]の配送を断念した場合、
[[アプリケーションサーバー]]に
[CODE[410]]
[[応答]]を返さなければ[MUST[なりません]]。
[SRC[>>1 6.2., 6.3.]]


-*-*-


[14] 
[[アプリケーションサーバー]]は、
[[受領証購読資源]]に
[CODE[DELETE]]
[[要求]]を送信して、
削除できます。
[SRC[>>1 7.3.]]