回答:
サーバーは、次の応答ヘッダーを送信して、Cookieフィールドを設定します。
Set-Cookie:名前=値
Cookieが設定されている場合、ブラウザはリクエストヘッダーで以下を送信します。
Cookie:名前=値
詳細については、WikipediaのHTTP Cookieに関する記事を参照してください。
Cookieは、リクエスト(クライアント->サーバー)とレスポンス(サーバー->クライアント)の両方でHTTPヘッダーとして渡されます。
それが他の回答で書かれているものとは別に、Cookieのパス、Cookieの最大経過時間に関するその他の詳細、それが保護されているかどうかもSet-Cookie応答ヘッダーで渡されます。例えば:
Set-Cookie:名前の=値 [ ; expires=日付 ] [ ; domain=ドメイン ] [ ; path=パス ] [ ; secure]
ただし、次のHTTP要求を行うときに、これらの詳細のすべてがクライアントからサーバーに返されるわけではありません。
設定することもできます HttpOnlyCookieの最後にフラグをして、JavaScriptによるスクリプトで、Cookieがhttponlyであり、アクセスを許可してはならないことを示すこともできます。これにより、セッションハイジャックなどの攻撃を防ぐことができます。
詳細については、RFC 2109を参照してください。Nicholas C. Zakasの記事、HTTP cookieの説明もご覧ください。
respとしてサンプルスクリプトを作成します。
#!/bin/bash
http_code=200
mime=text/html
echo -e "HTTP/1.1 $http_code OK\r"
echo "Content-type: $mime"
echo
echo "Set-Cookie: name=F"
次に、実行可能にして、このように実行します。
./resp | nc -l -p 12346
ブラウザを開いてURLを参照:http:// localhost:1236 ブラウザから送信されたCookieの値が表示されます
[aaa @ bbbbbbbb] $ ./resp | nc -l -p 12346
GET / HTTP / 1.1
ホスト:xxx.xxx.xxx.xxx:12346
接続:キープアライブ
キャッシュ制御:max-age = 0
受け入れる:text / html、application / xhtml + xml、application / xml; q = 0.9、image / webp、* / *; q = 0.8
Upgrade-Insecure-Requests:1
ユーザーエージェント:Mozilla / 5.0(Windows NT 6.1)AppleWebKit / 537.36(KHTML、like Gecko)Chrome / 49.0.2623.112 Safari / 537.36
Accept-Encoding:gzip、deflate、sdch
Accept-Language:en-US、en; q = 0.8、ru; q = 0.6
Cookie:name = F