約 5,221,365 件
https://w.atwiki.jp/0x0b/pages/89.html
ハイパーテキスト転送プロトコル RFC 2616 WebブラウザとWebサーバの間でHTMLなどのコンテンツの送受信に用いられる通信プロトコル リクエスト-レスポンス型 トランスポート・プロトコルとして通常TCPを使用 基本的な考え方は非常に単純であり「何を」「どうして」ほしいのかを相手に要求する。「何を」に当たるのがURL、「どうして」がメソッドにあたる。 World Wide WebにおけるWebページなどのリソースは、Uniform Resource Identifierによって指定される。 ポート番号80をデフォルトとして使用する(送信時は8080)。 TLSで暗号化され、セキュリティを確保したHTTPは、HTTPSと呼ばれる(httpsは実際にはURIスキームの1つであり、実際のプロトコルにはHTTP over SSL/TLSが用いられる)。 HTTP は基本的にサーバが状態を保持しない (stateless) プロトコルだが、データベースなどを使用するWebアプリケーションにおいては状態保持が必要だったため、そのためにいわゆる Cookie とよばれる機構が Netscape Communications Corporation によって導入された。Cookie を使用することによって状態を管理し、"セッション" を維持することが可能になる。 HTTPの拡張プロトコルとしてWebDAVがある。 UPnPでは、HTTPをUDP上で使用するHTTPUや、マルチキャストで使用するHTTPMUが規定された。 HTTP/0.9 URLのみの簡単なやりとり HTTP/1.0 NNTPやSMTPのような各種ヘッダが定義 HTTP_Cookieなどの利用 HTTP/1.1 複数データを転送するためのキープアライブ(keep-alive)機能やプロキシなどの利用も想定された仕様 バーチャルホストをサポートした。インターネット人気に伴い多くの企業がWebサイトを持ち始めたが、当時ではまだまだ企業が自前のWebサーバを運用するのは人員、効率の問題で難しかったためISPのサーバでホスティングをしていた。当時はまだ一社ごとに専用サーバを用意するほどのことでもないため一台のサーバで複数のWebサイトを運用していた。 しかしバーチャルホストには問題がある。例えばある1台のサーバに foo.example.com と bar.example.com という二つの仮想Webサーバがあるとする。ここではクライアントは http //foo.example.com/index.html にアクセスしたいとする。そのためにはまず foo.example.com をIPアドレスに解決するためDNSサーバに問い合わせ、そのサーバにアクセスし GET index.html を要求する。しかしサーバ側のIPアドレスは foo.example.com と bar.example.com 共におなじIPアドレスである。もし foo.example.com にも bar.example.com にも index.html というファイルが存在すればクライアントはどちらのサーバにアクセスしたのかわかるすべがない。 これを解決するにはそれぞれにIPアドレスを付与することで解決できるが、IPv4の資源を無駄にすることになる。 HTTP/1.1ではこれを解決するためにHostヘッダを追加した。 HTTP/1.0のヘッダ GET /index.html HTTP/1.0 HTTP/1.1のヘッダ GET /index.html HTTP/1.1 Host foo.example.com 動作 通信の開始 他のプロトコル同様クライアント側とサーバ側ではHTTPの役割が大きく異なる。HTTP通信を開始できるのはクライアント側のみである。 クライアント側はサーバにリクエストを送り、サーバはクライアントにレスポンスを返すのが最も典型的なHTTPのやりとりである。 接続 システム間でメッセージをやりとりするにはTCP接続を確立させる必要がある。 HTTP/0.9ではクライアントのリクエストごとにTCP接続を確立させる必要があったが、これは当時のWebサイトがシンプルなテキストベースであることが多かったためである。近年ではJavaScriptやアニメーション画像など、多数のオブジェクトが埋め込まれたWebサイトが一般的となってきているが、これら全てのオブジェクトを取得するたびにTCP接続を確立するのはサーバやネットワークに大きな負担を強いるため、HTTP/1.1では持続的接続がサポートされることとなった。ただしこの機能が利用できるのはサーバ側がその要求を許可した場合のみである。 パイプライン クライアントは前のリクエストに対するサーバの応答を待たずに別のリクエストを発行できる。 メソッド HTTPでは8つのメソッドが定義されている。ただし実際のHTTP通信ではGETとPOSTメソッドだけで殆どを占める。 HTTPメソッドの一覧 メソッド HTTP/0.9 HTTP/1.0 HTTP/1.1 GET ○ ○ ○ POST ○ ○ PUT △ ○ HEAD ○ ○ DELETE △ ○ OPTION ○ TRACE ○ CONNECT ○ GET 指定されたURIのリソースを取り出す。HTTPの最も基本的な動作で、HTTP/0.9では唯一のメソッド。 POST GETとは反対にクライアントがサーバにデータを送信するメソッドである。Webフォームや電子掲示板、Wikiなどに投稿する。GETの場合と同じくサーバはクライアントにデータを返すことができる。 PUT 指定したURIにリソースを保存する。URIが指し示すリソースが存在しない場合は、サーバはそのURIにリソースを作成する。画像のアップロードなどが代表的。 DELETE 指定したURIのリソースを削除する。 OPTION サーバを調査するメソッド。例えばサーバがサポートしているHTTPのバージョンなどを調査できる。 HEAD GETと似ているがサーバはHTTPヘッダのみ返す。クライアントはWebページを取得せずともそのWebページが存在するかどうかを知ることが出来る。例えばWebページのリンク先が生きているか検証するときなどにリンク先のデータを全て取得することなく調査することが出来る。 TRACE サーバまでのネットワーク経路をチェックできる。サーバは受け取ったメッセージのそれ自体をレスポンスのデータにコピーして応答する。WindowsのTracertやUNIXのTracerouteとよく似た動作。 CONNECT 暗号化したメッセージをプロキシで転送する際に用いる。 サーバの連携 バーチャルホスト リダイレクト 301 MovedというステータスコードとURIを受け取りクライアントはこの受け取ったURIに再度GETを送る。 クッキー(HTTP_Cookie) HTTPメッセージ クライアントからのHTTPリクエストは3つの要素から構成される。それぞれメソッド、URI、HTTPのバージョンでありスペースで区切られている。 下にもっとも単純な、クライアントとサーバ(www.google.co.jp 80)とのHTTPプロトコルのやり取りの例を挙げる。 クライアントのリクエスト GET / HTTP/1.0 GETがメソッド、URIは / 、バージョンはHTTP/1.0であることを示す。 URIは/でルートリソースを対象にしたリクエストであることを示している。TRACEなど特定のサーバを対象としないリクエストの場合には*が表示される。 サーバのレスポンス HTTP/1.0 200 OK Cache-Control private Content-Type text/html Set-Cookie PREF=ID=72c1ca72230dea65 LD=ja TM=1113132863 LM=111 3132863 S=nNO7MIp W2o7Cqeu_; expires=Sun, 17-Jan-2038 19 14 07 GMT; path=/; domain=.google.co.jp Server GWS/2.1 Date Sun, 10 Apr 2005 11 34 23 GMT Connection Close html head meta http-equiv="content-type" content="text/html; charset=Shift_JI S" title Google /title style !-- ・・・以下省略 上のリクエストのGETにあたる部分をメソッドといい、 HTTP/1.0では、GET, HEAD, PUT, POST, DELETE, LINK, UNLINK、 HTTP/1.1ではさらに、OPTIONS, TRACEがある。 GETメソッドのレスポンスにはヘッダ情報のあとに改行が挟まれ、コンテンツ本体が送られる。 HEADメソッドのレスポンスにはコンテンツサイズや更新日時などの情報を含むヘッダのみが送られる。 また、リクエストの2行目以降はヘッダを送る。 HTTPヘッダフィールド ヘッダの各要素は フィールド名 内容 のペアで構成される。 ブラウザの情報を表すUser-Agent、使用候補言語を表すAccept-Language、他ページへのリンクを辿った場合にそのリンク元ページのURLを表すRefererなどが代表的なフィールドである。 なお、リクエスト時のHostヘッダはHTTP/1.1では必須であるが、HTTP/1.0では無くても良い。 但し、サーバがバーチャルホストを利用している場合は、Hostヘッダが無いとリソース取得に失敗するので、たとえHTTP/1.0を使用していてもHostヘッダを付加しなければならない。 HTTPヘッダフィールドの一覧 リクエストヘッダ ヘッダ概要HTTP/0.9HTTP/1.0HTTP/1.1 Acceptクライアントの受け入れ可能コンテンツタイプを示す○○ Accept-Charsetクライアントの受け入れ可能文字セットを示す○○ Accept-Encodingクライアントの受け入れ可能文字エンコーディングを示す○○ Accept-Languageクライアントの受け入れ可能言語を示す○○ Authorizationクライアントの認証情報を示す○○ Cookieクライアントの状態管理情報をサーバに返す Cookie2HTTP/1.1のSet-Cookie2ヘッダの受け入れ可能をサーバに知らせる Expectクライアントがサーバに期待する動作を示す○ Fromリクエスト発行者個人の情報を示す。一般的に電子メールアドレスを使用する○○ Host要求しているオブジェクトがあるホストを示す○ If-Matchif文を用い条件が真の場合のみリクエストを処理するようサーバに要求する○ If-Modified-Since指定日及び指定時刻以降にオブジェクトが変更されている場合のみリクエストを処理するよう要求する○○ If-None-MatchIf-Matchの逆で条件が真でない場合のみリクエストを処理する要求○ If-Range条件が真の場合のみ指定したオブジェクトの範囲を返すようサーバに要求する○ If-Unmodified-SinceIf-Modified-Sinceの逆で真でないときのみ実行する○ Max-Forwardsリクエストの中間システム経由数を最大いくつまでかを指定する○ Proxy-Authorizationクライアントがプロキシサーバに対して自身の認証を行う○ Rangeオブジェクト全体でなくリソースの一部を要求する○ Refererリクエストの出所を示す。一般的にはユーザの辿ったWebページのURLが用いられる。○○ TEレスポンスの受け入れ可能転送エンコーディングを示す○ レスポンスヘッダ ヘッダ概要HTTP/0.9HTTP/1.0HTTP/1.1 Accept-Rangesオブジェクトの一部に対するリクエストをサーバが受け入れ可能か示す○ Ageオブジェクトの経過時間を秒単位で返す○ AllowオブジェクトがサポートするHTTPメソッドを示す○○ ETagオブジェクトのエンティティタグ値を示す○ Locationオブジェクトの場所を示す○○ Proxy-Authenticateプロキシサーバがクライアントに認証を要求するときに用いる○ Retry-Afterリクエストの再試行をいつ行うかをクライアントに通知する○○ Serverサーバのベンダー名、バージョン番号を占めす○○ Set-Cookie2サーバがクライアントにCookieを送信するときに用いる Varyサーバのレスポンス内容を決定する際にリクエストURI以外に使用したHTTPヘッダのリストを示す○ WWW-Authenticateクライアントに対してリクエストの再発行を要求する。認証情報も含まれる○○ 一般ヘッダ ヘッダ概要HTTP/0.9HTTP/1.0HTTP/1.1 Cache-Controlメッセージの経由する中間キャッシュの動作を指示する○ Connection中間システムが転送すべきでないヘッダのリストを示す○○ Dateメッセージの作成日時を示す○○ Pragmaメッセージに関する追加情報を示す○○ Trailerメッセージボディの後に追加のヘッダーが表れることを示す○ Transfer-Encodingクライアントの転送を目的としたオブジェクトのエンコーディングを示す○ Upgrade通信相手に別のプロトコルにアップデートするよう要求する○ User-AgentクライアントのWebブラウザなどの情報を示す○○ Warningメッセージに関する追加情報を示す。通常はキャッシュの問題を警告するときに使われる○ エンティティヘッダ ヘッダ概要HTTP/0.9HTTP/1.0HTTP/1.1 Content-Encodingオブジェクトのエンコーディングを示す○○ Content-Languageオブジェクトの言語(人間の言語)を示す○○ Content-Lengthオブジェクトのサイズをバイト単位で示す○○ Content-Locationオブジェクトの場所を示す○ Content-MD5オブジェクトのメッセージダイジェストを運ぶ○ Content-Rangeメッセージボディで運ばれるオブジェクトの範囲を示す○ Content-Typeオブジェクトのタイプを示す○○ Expiresオブジェクトの有効期限の日時を示す○○ Last-Modifiedオブジェクトが最後に変更された日時を示す○○ Accept サーバのレスポンスに含まれるメッセージボディで受け入れることが出来るコンテンツタイプと各コンテンツタイプの相対的な優先度を指定するリクエストヘッダ。指定できるコンテンツタイプはIANAによって定義されている。 Accept text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c 上記のようにAcceptヘッダには行をわけて複数のコンテンツタイプを指定できる。上記の例はいずれの4のコンテンツタイプのいずれも受け入れ可能であることを示す。0.5や0.8といった数字は品質係数で0~1の範囲の数値である。数値の指定がなければ1.0となる。 text/plain; q=0.5 text/html text/x-dvi; q=0.8 text/x-c Accept-Charset レスポンスで返されるメッセージボディの文字コードを指定するリクエストヘッダ。Acceptと同じく複数指定でき品質係数も設定できる。定義済み文字セットはIANAが管理している。 Accept-Charset unicode, *; q=0.8 この例だとクライアントはUnicode文字セットを優先的に希望しているが他の文字セットとの相対優先度0.8で受け入れている。ただしサーバからのレスポンスのHTTPヘッダそのものの文字コードは常にISO-8859-1である。 Accept-Encoding Accept-Language レスポンスの言語(人間の言語)に対する優先度を指定する。言語コードはISO-639の2文字の省略コードを用いる。書き方は他のAccept-群と変わらず。 Accept-Language en-gb, en; q=0.8 上記の例はまずイギリス英語を要求し、利用できない場合はその他の英語を要求する。 Accept-Ranges Acceptで始まる他のヘッダフィールドと違いレスポンスヘッダーである。現在の仕様では2つの指定方法しかない。 Age リソースの推定経過時間を表示するレスポンスヘッダ。キャッシュサーバーはAgeヘッダの値からキャッシュしたリソースが有効かどうかを判定する。 Allow Authentication-info ユーザ認証のやりとりの最後で用いられる、成功したレスポンスのサーバが含めることの出来るレスポンスヘッダー。 Authorization サーバに対するクライアント自身の認証を行うことが出来る。 Cache-Control キャッシングの動作を指定するためのマスターヘッダ。 Connection Content-Encoding Content-Language リソースを英語などの自然言語で示すのに使われる。言語の指定はAccept-Languageヘッダと同じ。 Content-Length Content-Location Content-MD5 メッセージボディが変更されず宛先に届くことを保証する。MD5アルゴリズムを実行する。ただし悪意の改ざんに対しては当然MD5も改ざんされるのであまり機能はしない。どちらかといえば偶発的な変更の保証をしている。 Content-Range ダウンロードの再開に用いられる。 Content-Type メッセージボディに含まれるオブジェクトタイプを示す。次の例はリソースがテキストファイル、文字セットはISO-8859-4を使用していることを示している。 Content-Type text/plain; Charset=ISO-8859-4 Cookie クライアントがHTTP状態管理を望む場合にサーバから受け取ったクッキーを以後のリクエストに次の例のようなヘッダーを付加する。 Cookie $Version="1"; NAME="VALUE"; $Path="/shopping"; $domain="www.shop.com"+ $Port="80" $VersionはHTTPのバージョン、NAMEはクッキーの名前である。$から始まるクッキー名は使用が禁止されている。 Cookie2 基本的にCookieヘッダーとCookie2ヘッダーは別物である。 Date サーバがメッセージを生成した日時を示す。リソースの時間を示すLast-Modifiedヘッダーとは区別する必要がある。 HTTP/1.1では次のような形式を用いるようRFC1123で定義されている。 Date Sun, 06, Nov 1994 08 49 37 GMT HTTP仕様ではレスポンスにDateヘッダーを含めることを求めている。ただしレスポンスのステータスがサーバエラーの場合にはDateヘッダーは返らない。 ETag 主にキャッシングのパフォーマンスを向上する目的で使われる。 Expect サーバに対して特定の動作の期待を知らせる。用途としてはクライアントがサーバに対して100 Continueステータスを返すことを期待する場合に使われる。 Expect 100-continue サーバが期待に応じれない場合は417 Expectation Failedを返す。クライアントがいくつかのプロキシ経由で通信している場合、各プロキシサーバはExpectヘッダの一切の修正を許されない。 Expires オブジェクトの有効期限を示す。このヘッダで指定された日時までキャッシュはレスポンスのコピーを保持し、リクエストに対するレスポンスとして返すことが出来る。サーバがオブジェクトのキャッシュを望まない場合にはExpiresヘッダに過去の日時を設定することが多い。また、HTTP仕様では1年以上先の日時は設定できない。 Expires Thu, 28 Aug 2010 16 00 00 GMT Cache-Controlヘッダのmax-ageディレクティブはExpiresヘッダより優先されるため注意が必要である。 From リクエストを発行したユーザを特定することが出来る。1990年代では電子メールアドレスを設定することが多かったが、迷惑メールの問題もあり現在では殆ど使われていない。 From hoge@hogehoge.com Host 主にレンタルサーバのサポートを目的としてHTTP/1.1で導入された。現在ではHostヘッダを利用できない場合レンタルサーバのウェブサイトとまともな通信が出来ないと言ってよい(詳細はHTTP#歴史を参照)。 If-Match クライアントのリクエストを条件付きのリクエストにするために使われる。サーバは一定の条件が真であった場合のみリクエストを受け入れることが出来る。例えばウィキペディアを編集する際、記事のソースを取得し、書き換える際の間に別のユーザが既に編集していないかを判断するときなどに用いられる。 「if文」も参照 利用者:HogeがHTTPの記事を取得。ETagは1234 利用者:HageがHTTPの記事を取得。ETagは1234 利用者:HogeがHTTPのETagを再度取得。先ほど取得したETag 1234と現在のETag 1234が一致。 利用者:HogeがHTTPの記事を編集。ETagは1256になる。 利用者:HageがHTTPのETagを再度取得。先ほど取得したETagと現在のETagはマッチせず。 サーバは利用者:Hageの書き込みを拒否。 If-Modified-Since このヘッダーで指定された日時以降にオブジェクトが変更されている場合のみリクエストに応答するようサーバに要求する。リソースの削減に効果がある。 If-None-Match If-Matchと逆で条件が真でない場合のみリクエストを処理するよう要求する。 If-Range クライアントがキャッシュにオブジェクトの一部分を持っている場合にパフォーマンスを向上できる。 If-Unmodified-Since If-Modified-Sinceの逆の働きをする Last-Modified サーバオブジェクトの最終更新日時を示す。クライアントはこのヘッダを利用しIf-Modified-Sinceヘッダ等と組み合わせることによって効果を発揮する。 Location サーバがクライアントにリダイレクト先URLを知らせる際に用いられる。一般的にステータスコードが3xx代のレスポンスと共に使われるが201 Createdのレスポンスでも使うことが出来る。Content-Locationヘッダと名前が似ているが全く関係のない別のヘッダであるため注意。 Max-Forwards プロキシサーバ等を経由する際の最大ホップ数を指定する。二重ループなどでサーバから応答が得られない場合の問題解決の際、OPTIONメソッドやTRACEメソッドと共に用いられる。 HTTPステータスコード ステータスコードはクライアントのリクエストが成功したかどうかを示した上で追加情報を提供するいずれも3桁の数字から成る。具体的には100-199が情報提供、200-299が成功を示す。300-399はリダイレクト、400-499はエラーを示す。 セキュリティ技術 Basic認証 HTTP/1.1でBasic認証が定義されており最も単純なセキュリティ技術である。しかし仕様書を読むと定義を書いた著者自身が認証技術に疎いことがよくわかる。『HTTPプロトコル セキュア&スケーラブルなWeb開発』の著者は「基本認証を用いるくらいならなにも使わない方がまし」と著書に書いている。通常サーバは401ステータスコードで応答する。 行末文字はWindowsと同じCRLF。 RFC 2818 - HTTP Over TLS RFC 2817 - Upgrading to TLS Within HTTP/1.1 RFC 2616 - HTTP/1.1 ハイパーテキスト転送プロトコル -- HTTP/1.1 RFC 2068 - HTTP/1.1(初版,RFC 2616 によって obsolete) TS X 0085 2004 - ハイパテキスト転送プロトコル HTTP/1.1 標準仕様書(TS) RFC 1945 - HTTP/1.0 HttpTea Freeware HTTP Logger Studying HTTP
https://w.atwiki.jp/katsuhiro/pages/26.html
HTTPメソッド GET情報取得メソッド POST PUT DELETEリソース削除メソッド HTTPリクエスト ポストデータ HTMLのPOST指定のformから送信されるデータ JSPのrequestオブジェクトから下記のメソッドで情報を取得できるgetParameter getParameterValues リクエストボディのセットされて送信される クエリ情報 URLの末尾の"?"以降に「キー=値」のセットで付加される簡易な情報 複数のセットがある場合は" "で連結される URLに直接指定するほか、HTMLのGET指定のformから送信されるデータ formのmethod属性が省略された場合もクエリ情報として送信される JSPのrequestオブジェクトから下記のメソッドで情報を取得できるgetParameter クエリ情報に特殊文字が含まれる場合は、あらかじめエンコードしておく必要がある(form経由の場合はエンコード不要) URLに使用可能な文字数を超えて送信できない(2,083文字)FireFoxの場合は制限が無いが、動作が遅くなる場合もあるらしい データがアドレス欄に露出してしまう ヘッダ情報 「名前: 値」形式 種類一般ヘッダ(要求/応答時双方で利用) エンティティヘッダ(コンテンツに関する情報) リクエスト(要求)ヘッダ(クライアントに関する情報) レスポンス(応答)ヘッダ(その他) JSPのrequestオブジェクトから下記のメソッドで情報を取得できるgetHeaderNames ただし、情報取得専用メソッドが存在するヘッダについてはそちらを使う ■ヘッダ例 種類 ヘッダ名 概要 一般 Cache-Control キャッシュルールを規定する Connection プロキシ(中間)サーバで削除すべきHTTPヘッダを指定 Date コンテンツ生成日時 Pragma キャッシングを利用するか(下位互換用のヘッダ) Transfer-Encoding コンテンツの転送エンコーディング方式 リクエスト Accept クライアント対応コンテンツの種類(優先順) Accept-Language クライアント対応言語(優先順) Authorization 認証情報 Cookie クライアントに保存されたクッキーデータを送信 Host 要求先ホスト名 If-Modified-Since 指定日時以降にコンテンツが更新されている場合にのみ、サーバはデータを送信 Proxy-Authorization プロキシサーバ用の認証情報 Range 要求リソース範囲 Referer リンク元URI User-Agent クライアントの種類 レスポンス ETag リソースを一意に特定するためのキー情報(コンテンツが更新されていないかどうかを特定する場合などに使用) Location クライアントに新しいURIに移動するように促す Server サーバの種類 Set-Cookie クライアントにクッキーを送信 WWW-Authenticate クライアントに認証を要求 エンティティ Content-Encoding コンテンツのエンコーディング方式 Content-Length コンテンツサイズ Content-Type コンテンツの種類 Expires コンテンツの有効期限 Last-Modified コンテンツの最終更新年月日 クッキー サーバがクライアントに対して自由に読み書きできるテキスト クッキーの有効期限負数をセットした場合、ブラウザの終了時に削除される 0をセットした場合、その場で削除される 1以上をセットすると、その秒数分保持される クッキーのデメリットクライアント側でクッキーを受け入れないように設定することが可能 クライアント側でクッキーの改竄や削除が可能 実データがネットワーク上を流れてしまう クッキーの制約1つのホスト、ドメイン当たりの最大個数は20個(総数では300個以内) クッキー1つあたりの最大サイズは4096バイト セッション情報 長期間にわたって情報を保持するには不向き ユーザがブラウザを開いている間だけアプリケーション内で情報を受け渡しする場合にはクッキーより手軽でセキュアな仕組み sessionJSPの暗黙オブジェクトの1つ 下記のメソッドを使って読み書きするgetAttribute setAttribute @pageディレクティブのsession属性がfalseの場合は使えない sessionが不要の場合はsession属性をfalseにしておく(サーバリソースの節約) sessionを使うと… クライアントからサーバにリクエスト送信 サーバからのレスポンスにSet-Cookieヘッダの値としてセッションIDが付加される(JSESSIONID) クライアントからサーバに2回目以降のリクエスト送信時、Cookieヘッダの値として、受け取ったJSESSIONIDを付加して送る サーバをそのセッションIDに該当するセッションを使って処理をし、レスポンスを返す セッションの破棄方法明示的な破棄(session.invalidate()) 有効期限を設定する(session.setMaxInactiveInteval()) web.xmlにセッションの有効期限を設定する session-config session-timeout セッションの寿命明示的に破棄されるか有効期限を過ぎない限り、クライアントを閉じてもサーバ上で生き続ける ieHTTPHeaders http //www.blunck.info/iehttpheaders/iehttpheaders.html ⇒IE上でHTTPによる通信内容をトレースするツール
https://w.atwiki.jp/phyzios/pages/13.html
Phyzios Studioとは「描いた絵が動いてゲームになる」Webサービスです。アート作品やゲームのプレイと作成が楽しめます。創った作品は世界のユーザーに公開し、遊びを共有することができます。2008年のGDC (Game Developers Conference) にて好評を博し、国内外で8万超のダウンロードを記録した物理シミュレーションソフト「OE-Cake!」をバージョンアップし、Web化したものが「PHYZIOS Studio」です。 サイト様http //phyzios-studio.net/ ここを編集
https://w.atwiki.jp/sevenlives/pages/899.html
php.ini 読み:ぴーえっちぴーいに 英語:php.ini 別名:PHP設定ファイル 意味: php.iniとはPHPの設定を書き込むファイル。 PHPタグの書式や、モジュールやライブラリ?のパス、文字コード?などPHPの設定を細かく指定できます。 「php.ini」の設定はサーバ起動時に読み込まれるようになっています (サーバ・ソフトのの指定が必要)。 2007年12月29日 php.ini-dist php.ini-recommended
https://w.atwiki.jp/wet_news/pages/55.html
#blognavi 露出でクビ部長の実弟「ウンコチンチン」で懲戒に http //www.zakzak.co.jp/top/2006_07/t2006072121.html 雑記帳 恐ろしい顔の“人面トマト”、畑で収穫 京都 http //headlines.yahoo.co.jp/hl?a=20060726-00000013-maip-soci.view-000 筋肉少女帯、再結成を発表 http //entame.gungho.jp/entame/music/news/0607/23/news03.html 甲本ヒロトが新バンド「ザ・クロマニヨンズ」を初披露! http //www.sanspo.com/geino/top/gt200607/gt2006072404.html 悪質リース被害多発 「黒電話 使えなくなる」 http //www.asahi.com/national/update/0725/TKY200607240652.html マドンナ公演で車椅子のファンを助けたのは…… http //www5.big.or.jp/~hellcat/news/ 中3男子4人「平和すぎて面白くない」と校舎の窓割る http //www.zakzak.co.jp/top/2006_07/t2006072607.html なめるだけで疲労測定 慈恵医大教授が開発へ http //www.asahi.com/life/update/0723/005.html 結局、花火はどこで遊べばいいのですか http //www.excite.co.jp/News/bit/00091153675716.html 鼻に小銭!? 『徹子の部屋』史上最も危険な日 http //www.excite.co.jp/News/bit/00091153873563.html 映画のヒーローのように…強盗を撃退した80歳女性 http //www.excite.co.jp/News/odd/00081153855574.html サッカーTシャツからパスポート偽造が判明 http //www.excite.co.jp/News/odd/00081153841492.html まぁみんな分かってた事だし http //l-c.hp.infoseek.co.jp/mirror/072507.jpg 役にたたなそうな変質者見分けマニュアル http //l-c.hp.infoseek.co.jp/mirror/old072407.jpg パーツが余った? http //pya.cc/pyaimg/pimg.php?imgid=30642 今の科学ではこれが限界。 http //pya.cc/pyaimg/pimg.php?imgid=30627 秘密基地 http //pya.cc/pyaimg/pimg.php?imgid=30609 カテゴリ [ニュース] - trackback- 2006年07月26日 13 57 14 名前 コメント #blognavi
https://w.atwiki.jp/handsrecs/pages/16.html
http //www.studyinghttp.net/status_code
https://w.atwiki.jp/sevenlives/pages/43.html
HTTP/0.9? HTTP/1.0? HTTP/1.1 HTTPS? HTTP/2? マルチパートデータ 【MIMEマルチーパート】? メディアタイプ【Content-type】 basic認証【ベーシック認証】 クッキー【Cookie】 リファラ パイプライン? データレンジ? コンテント・ネゴシエーション? 全二重? SPDY? メッセージ(HTTP) リクエスト?リクエスト・メッセージ?リクエスト・ライン? リクエスト・ヘッダ? リクエスト・ボディ? メッセージ・ボディ レスポンス?レスポンス・メッセージ?ステータス・ライン? レスポンス・ヘッダ? レスポンス・ボディ? ステータス・コード?ステータス・コード(200)? ステータス・コード(301) ステータス・コード(302) ステータス・コード(404)? ステータス・コード(500)?
https://w.atwiki.jp/swimmy1997/pages/13.html
html head meta http-equiv="Content-Type" content="text/html; charset=shift_jis" meta http-equiv="Content-Language" content="ja" title /title /head frameset rows="180,*,180" border="0" frame name="top" src="うえ" scrolling="no" frameset cols="100%,*" border="0" frame name="center" src="まんなか" scrolling="no" /frameset frame name="bottom" src="した" scrolling="no" /frameset noframes body フレームを表示できないブラウザへのメッセージ /body /noframes /font /p font size="3" p /p p /p p /p p /p p /p /font /td td width="25%" /td /tr /table /body /html
https://w.atwiki.jp/kswc_kesc/pages/284.html
2007年12月 年末年始観測会 07年12月末から1月2日まで、長野県南牧村(八ヶ岳山麓)に行って来ました。 幸い、かなりの晴天に恵まれましたが、その分気温も下がりました…。 もちろん機材のほとんどが凍りつきました。 それとは別に過冷却に達したコーラが、実は恐ろしいという事を学びました。 written by 白色Y星人 以下、その時の写真の一部を公開。 オリオン座。
https://w.atwiki.jp/tmogmni/pages/25.html
php.iniの文字コード設定 ブラウザにphpのエラーを表示させない その他 php.iniの文字コード設定 PHPプログラムをShift_JISで保存、ブラウザへShift_JISで出力する場合 output_buffering = Off default_charset = Shift_JIS extension=php_mbstring.dll(コメントのセミコロンを外す) mbstring.language = Japanese mbstring.internal_encoding = SJIS mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none PHPプログラムをShift_JISで保存、ブラウザへEUC-JPで出力する場合 output_buffering = On output_handler = mb_output_handler default_charset = EUC-JP extension=php_mbstring.dll(コメントのセミコロンを外す) mbstring.language = Japanese mbstring.internal_encoding = SJIS mbstring.http_input = auto mbstring.http_output = EUC-JP mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none PHPプログラムをEUC-JPで保存、ブラウザへShift_JISで出力する場合 output_buffering = On output_handler = mb_output_handler default_charset = Shift_JIS extension=php_mbstring.dll(コメントのセミコロンを外す) mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none PHPプログラムをEUC-JPで保存、ブラウザへEUC-JPで出力する場合 output_buffering = Off default_charset = EUC-JP extension=php_mbstring.dll(コメントのセミコロンを外す) mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = EUC-JP mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none ブラウザにphpのエラーを表示させない テスト環境ではいいけれど、本番環境でphpのエラーが表示されると、非常にまずいので、php.iniファイルを以下のように修正 display_errors = Off これで画面にphpエラーは表示されなくなる。とはいえ、本番環境でエラー内容がわからないと不便なので、エラーログを吐き出す設定をする。php.iniファイルを以下のように修正 ;;log_errorsを有効にする log_errors = On ;;エラーログファイルのパスを指定 error_log = /var/log/phplog ログファイルを作成 # touch /var/log/phplog ログファイルの権限をnobodyにする。こうしないと書き込まれないらしい。 # chown nobody /var/log/phplog その他 register_globalsはOFFにしとけ session.use_only_cookies は ON で運用したほうが良い allow_url_fopen = Off にしておこう