mirror of
https://github.com/yhirose/cpp-httplib.git
synced 2026-04-11 19:28:30 +00:00
4.4 KiB
4.4 KiB
title, order, status
| title | order | status |
|---|---|---|
| Cookbook | 0 | draft |
「〇〇をするには?」という問いに答えるレシピ集です。各レシピは独立しているので、必要なページだけ読めます。基本的な使い方はTourで紹介しています。
クライアント
基本
認証
ファイル送信
ストリーミング・進捗
接続・パフォーマンス
- C12. タイムアウトを設定する
- C13. 全体タイムアウトを設定する
- C14. 接続の再利用とKeep-Aliveの挙動を理解する
- C15. 圧縮を有効にする
- C16. プロキシを経由してリクエストを送る
エラー処理・デバッグ
サーバー
基本
- S01. GET / POST / PUT / DELETEハンドラを登録する
- S02. JSONリクエストを受け取りJSONレスポンスを返す
- S03. パスパラメーターを使う(
/users/:id) - S04. 静的ファイルサーバーを設定する(
set_mount_point)
ストリーミング・ファイル
- S05. 大きなファイルをストリーミングで返す(
ContentProvider) - S06. ファイルダウンロードレスポンスを返す(
Content-Disposition) - S07. マルチパートデータをストリーミングで受け取る(
ContentReader) - S08. レスポンスを圧縮して返す(gzip)
ハンドラチェーン
- S09. 全ルートに共通の前処理をする(Pre-routing handler)
- S10. Post-routing handlerでレスポンスヘッダーを追加する(CORSなど)
- S11. Pre-request handlerでルート単位の認証を行う(
matched_route) - S12.
res.user_dataでハンドラ間データを渡す
エラー処理・デバッグ
- S13. カスタムエラーページを返す(
set_error_handler) - S14. 例外をキャッチする(
set_exception_handler) - S15. リクエストをログに記録する(Logger)
- S16. クライアントが切断したか検出する(
req.is_connection_closed())
運用・チューニング
- S17. ポートを動的に割り当てる(
bind_to_any_port) - S18.
listen_after_bindで起動順序を制御する - S19. グレースフルシャットダウンする(
stop()とシグナルハンドリング) - S20. Keep-Aliveを調整する(
set_keep_alive_max_count/set_keep_alive_timeout) - S21. マルチスレッド数を設定する(
new_task_queue) - S22. Unix domain socketで通信する(
set_address_family(AF_UNIX))
TLS / セキュリティ
- T01. OpenSSL・mbedTLS・wolfSSLの選択指針(ビルド時の
#defineの違い) - T02. SSL証明書の検証を制御する(無効化・カスタムCA・カスタムコールバック)
- T03. SSL/TLSサーバーを立ち上げる(証明書・秘密鍵の設定)
- T04. mTLS(クライアント証明書による相互認証)を設定する
- T05. サーバー側でピア証明書を参照する(
req.peer_cert()/ SNI)
SSE
- E01. SSEサーバーを実装する
- E02. SSEでイベント名を使い分ける
- E03. SSEの再接続を処理する(
Last-Event-ID) - E04. SSEをクライアントで受信する
WebSocket
- W01. WebSocketエコーサーバー/クライアントを実装する
- W02. ハートビートを設定する(
set_websocket_ping_interval) - W03. 接続クローズをハンドリングする
- W04. バイナリフレームを送受信する