PES
JA English 한국어 日本語 中文 हिन्दी বাংলা اردو Español Português Français Deutsch Русский العربية Bahasa Indonesia Tiếng Việt ไทย Türkçe

通知を有効にする方法

このブラウザーまたはアドレスでは通知を利用できません。対応ブラウザーで安全な接続のPESサイトを開いてください。

通知がブロックされている場合は、ブラウザーの設定で許可してください。

  1. アドレスバー横のサイト設定、またはブラウザーのサイト設定を開き、このサイトの通知を許可に変更してください。
  2. 端末の設定でブラウザーの通知を許可し、おやすみモードや集中モードを確認してください。
  3. PESに戻ってページを再読み込みし、ベルから通知を有効にしてください。

iPhoneやiPadではPESをホーム画面に追加し、そこから開いて通知を許可してください。

わたしの学習進度
  1. 人工知能の使い方
  2. ターミナル命令
  3. 人工知能の応用
  4. バイブコーディング
  5. 人工知能資格 準備中
  6. キーボード
バイブコーディングの一覧へ
バイブコーディング

Webクライアント

サーバーに何かを求めるもの、すべて。

ChromeもWebクライアントですし、curl一行もWebクライアントです。この章ではHTTPリクエストを手で書き、それをシェルスクリプトに包み、curlをきちんと覚え、最後にChromeの開発者ツールを開いて同じ文章が飛び交うのを目で確かめます。

ターミナルでWebクライアントを作る

HTTPが文字にすぎないといちばん早く納得する方法は、リクエストを自分で打つことです。前のテーマのシェルWebサーバーを立てておき、ターミナルをもう一つ開いて手で話しかけてみてください。

ncでリクエストを手書きする

netcatはポートにつなぎ、打った文字をそのまま線へ流します。二行打ってEnterを二度押せばサーバーが答えます — 今あなたはブラウザーの仕事を手でやりました。

terminal
# connect, then type the two lines below and press Enter once more
nc localhost 8084

GET / HTTP/1.1
Host: localhost

# or send it all at once (printf's \r\n is HTTP's line break)
printf 'GET / HTTP/1.1\r\nHost: localhost\r\n\r\n' | nc localhost 8084
  • 最後の空行が大事です。リクエストが終わったとサーバーに告げる印で、だからEnterをもう一度押します。
  • HTTPは行末ごとにキャリッジリターンと改行を求めます。手打ちでも通るのは多くのサーバーが寛容だからで、printf版は規格が求めるとおりを送ります。
  • Hostの行はHTTP/1.1が必ず求めます。本物のサイトへこれなしで送ると、ページではなくエラーが返るのがふつうです。

スクリプトに包む

リクエストがprintf一行になれば、使い回せるクライアントは数行で済みます。下のスクリプトはホスト・ポート・パスを受け取ってリクエストを送り、ヘッダーと本文を分けて見せます。

client.sh
#!/bin/bash
# usage: bash client.sh localhost 8084 /

HOST=${1:-localhost}
PORT=${2:-8084}
PATH_=${3:-/}

printf 'GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n' "$PATH_" "$HOST" \
  | nc "$HOST" "$PORT" \
  | tr -d '\r' \
  | awk 'BODY { print; next } /^$/ { BODY = 1; next } { print "[header] " $0 }'

trはHTTPが行末ごとに残すキャリッジリターンを取り除き、awkは空行に出会うまでをヘッダーとして印を付けます — その後はすべて本文です。ブラウザーが描き始める前にする分け方とまったく同じです。

両側を一緒に動かしてみてください

一つのターミナルにシェルWebサーバー、もう一つにこのクライアントを立てれば、自分で書いた会話の両端を持つことになります。サーバーの返事を書き換えるとクライアントがすぐ気付きます — 間に何もないからです。

シェルWebサーバーへ戻る

自分で記録する欄です。ここで採点はしません。

この段階を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

ガイドライン

人工知能

人工知能資格

勉強

バイブコーディング

ゲーム開発

練習

チューター

チャット

掲示板

制作

コミュニティ

その他

用語辞典

知らない言葉を選んでみましょう。やさしい説明と関連用語が見られます。

その用語はまだありません。

用語を選ぶと説明が表示されます。