「RFC 8307 Well-Known URIs for the WebSocket Protocol」でWebSocketにおいても Well-Known URIが使用できるようになりました。
この界隈では珍しく、個人ドラフトの-00から一気にRFCになっています
https://datatracker.ietf.org/doc/rfc8307/
Well-Known URI
httpやhttpsでは、Well-Known URIというものがあり特定用途に使用するURIが予約できるようになっています (RFC 5785)
例えば、https://example.com/.well-known/○○○○○ のように /.well-known/ 以下に特定用途のURIが予約されます。
現在登録されているWell-Known URIの一覧は、IANAのページから確認できます (URL)
例えば以下のような物があります
WebSocketの場合
Well-Known URI自体を定義するRFC5785ではHTTPとHTTPS スキームの場合についてのみ言及しており、ws://やwss://での使用は定義されておりませんでした。
そこでRFC 8307では、ws://やwss://でもHTTPの場合と同様に Well-Known URIに対応する事が決められました。
用途
なぜこのような仕様が出てきたのか一見わからなかったのですがMLを遡ると、「CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets」という提案仕様においてWebSocketでもWell-Known URIを使うようだ。
CoAPは、IoTデバイスなどのリソース・ネットワークが制限された環境下での使用を目的とした軽量アプリケーションプロトコルで、この提案仕様はそのCoAPをWebSocket上で通信させる仕様のようだ。
以下のように、ws://でもWell-Known URIを使用している
ws://example.org/.well-known/coap
具体例を見るに、WebSocketのアップグレード手順内で使用されるエンドポイントのようだ。
GET /.well-known/coap HTTP/1.1 Host: example.org Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== Sec-WebSocket-Protocol: coap Sec-WebSocket-Version: 13
なるほど。