送信とは?/ プロミス
[ 386] フォームデータの送信 -- ごく簡単なHTMLの説明
[引用サイト] http://www.kanzaki.com/docs/html/htminfo32.html
ブラウザからのデータデータは、特別な形式でエンコードされて送信されることになっています。画面に表示されるフォームのコントロールで入力する以外にも、隠されたデータの情報を送ったり、フォームを使わずに送信するなど、いくつかの方法があります。 input要素などで用意する「コントロール」はユーザーがそれを操作してデータを入力するためのものです。しかし、場合によってはHTMLの制作者が指定したデータをプログラムに送信したい場合もあるでしょう。このようなデータはユーザーが操作する必要はなく、ユーザーの目に触れないほうが都合がよいものです。そのために、input要素のタイプの一つとしてhidden型が用意されています。 このような情報をフォームに書きこんでおくと、ユーザーの目に触れることなく「info」という名前と「secret」という値を持ったデータがプログラムに送信されます。汎用のプログラムに特定の動作をさせたい場合などに使います。 このようにして用意したコントロールは、普通のコントロールと同様に表示されますが、内容を編集することができません。 フォームのコントロールを通して入力されたデータは、送信命令(submit型のinput要素)によってサーバーに送られます。そのとき、英数字以外のデータは利用者が入力したそのままの形ではなく、%と数字やアルファベットで構成されたURLエンコード形式という形に変換され、およそ次のようなイメージになります。 送信してもページが更新されないので、利用者は何かエラーが生じたと思い、何度も送信してしまう可能性がある(適切な説明が必要) CGIを必要としない手軽な方法なので、フォームの練習や「訪問記念」ボタンには手頃ですが、本格的なデータ送信にはあまり適さないでしょう。 input要素のtype属性をfileとすると、ファイルを選択するためのコントロールを用意することができます。このタイプを用いて、ファイルの中身をフォームのデータとして送信することができます。 このエンコードで送られたフォームのデータは、URLエンコードではなく、次のようなMIMEのマルチパートデータとしてプログラムに届きます。 このエンコードをmailtoアクションと組み合わせると、MIMEの添付ファイルの形式でフォームの内容をメール送信できることもあります。うまく機能すれば、CGIを使わなくても日本語を記述したフォームをメール送信させられそうですが、期待通りに働くかどうかはブラウザ次第で、文字化けする可能性もあります。 つまりgetを使うとデータはURLの一部として送られるわけです。「URLエンコード」とは、データをURLに埋め込んでも問題が生じないように、英数字以外の文字や/などの記号を安全な形に変換することを意味します。サーバーは受け取ったURLを ? を境に分割し、その前半に示されているプログラムを呼び出して、後半の値(フォームの内容=クエリ)を処理データとして渡します。 POSTの場合は、このリクエスト行にはデータの内容は書き込まれず、これに続く本体(エンティティ)にデータが入って送信されます。 postメソッドはメッセージの投稿、データベースへのデータの追加などを処理する方法として用意されており、必ずしもHTMLファイルのような情報を取り出すことを目的としていません。 getはその名の通り、何かをゲットする(取り出す)のが本来の役割です。データベースにキーワードを送って検索結果を「取り出す」などのためにgetを用います。 getを使った場合、その結果はクライアントのディスクにキャッシュされ、次回以降はそのキャッシュの内容を利用することが期待されているので、(少なくとも短期的には)同じクエリによるリクエストに対しては同じ結果を返さなければなりません。また、getはクエリがURIの一部になるため、それがそのままブックマークされたり、リンク先として用いられたりする可能性もあります。 postは「投稿する」を意味します。メッセージの書き込み、新規データの登録など、何かをプログラムに送って内容を書き換えるような場合はpostを使わなければなりません。 getのクエリはサーバーの環境変数を経由してCGIに渡されるので、非常に長いデータを送るのには向きません。上限はサーバーによって違いがありますが、せいぜい数KB程度なので、texarea要素などで長いテキストを入力する場合はpostが適切です(一般的には、このようなケースはデータの登録であり、postの本来の定義に合致する使い方になるでしょう)。 getメソッドがURLの一部になることを応用すると、フォームを用いずにデータを直接CGIプログラムに送信することができます。たとえば、kwという名前で送ったデータをキーワードにデータベースを検索するプログラムdbase.cgiがあるとすると という形のアンカーを用意することで、用語をクリックするとその説明をデータベースで検索して表示するような仕掛けを提供できます。 |
[ 387] ITmedia Biz.ID:メールアドレスに送信するだけで使えるサービス4選
[引用サイト] http://www.itmedia.co.jp/bizid/articles/0705/30/news124.html
あるアドレスにメールを送るだけで、サービスが受けられる──。メーリングリストを作成したり、検索したり、翻訳したり、さらには自分宛のリマインドを設定したり。シンプルに使えるメールアドレス9つを紹介する。 と、サイト「百式」にインスパイアされた。メールはとてもシンプルな道具でありながら、実はさまざまなサービスを受けることができる。あるメールアドレスにメールを送るだけでサービスを受けられるサイトを調べてみた。 メーリングリスト(メーリス)を作るのに、サービスを申し込んだりサーバを設定したり……というのは昔のこと。あるメールアドレスにメールを送るだけで、簡単にメーリングリストを作成できるサービスが増えている。 送ったメールは自分に戻ってくるのではなく、言語が変換されて相手に送信される。英語なら日本語に、日本語なら英語に自動判別してくれるのがうれしい。 上記のメールアドレスに宛て、本文に言葉を入れて、携帯からメールを送ってみよう。Googleの場合は、その言葉を使って検索した結果が、Amazonの場合は書籍などの商品を検索した結果がメールの返信として戻ってくる。 ニワンゴの場合、検索語の前にキーワードを付けることで、よりジャンルを絞った検索が可能だ。例えば、「天気 地域名」と入れれば、その地域の天気が、「英和 英単語」と入れれば日本語の意味が、「おみくじ」といれれば今日の運勢が戻ってくる(詳細はこちらの記事参照)。 お目当ての本があって書店に行ったのに、タイトルや著者名、出版社名が分からなくて買えない、という経験をしたことはないだろうか。そんなときに便利な方法を紹介する。 オンラインショップやWebサービスに、友人とのやりとりに使っているアドレスを登録してしまうのは考え物だ。アドレスが汚染されないよう、複数のメールアドレスを使いこなそう。 シゴトハック研究所:習慣を継続するための3つのポイント【解決編】何かを習慣とするまでには、自分の身体の一部となるまでの苦しみを乗り越えなくてはなりません。“芽”が出るまでの日々をいかに乗り切るかがカギです。 樋口健夫の「笑うアイデア、動かす発想」:海外出張で活躍した“タンデム腕時計”香港国際空港に着陸する時、筆者は腕時計を見つめていた。実は、時計に付いた電子コンパスで、刻々と変化する機体の方角を確認していたのだ。こうした多機能時計を2つ合体させたのが、“タンデム時計”である。 シゴトハック研究所:習慣を継続するコツは?【問題編】梅雨時、憂うつな6月。英語を学ぼうと意気込むカホコさんですが、毎回長続きしないのが悩みです。 ライフハック テンプレート:#126 年代別商品発想シート新商品のアイデアをどうやって得ていますか? 方法の1つは、ある商品を別の年代セグメントに展開することです。その方法を考えてみましょう。 女性が活躍できる職場環境を目指すアクセンチュアの挑戦。多忙な中、育児との両立を図る先輩夫婦がコツを語る @IT自分戦略研究所が実施した過去7年の読者調査を大解剖! 過去のスキル・転職動向から、IT業界のトレンドを振り返る |
プロミスのサイトです。