ベトバン - 経験



HTTPヘッダー情報とは?

by Hoàng Hải Triều / Tháng Tư 11, 2018

参考先:https://webtan.impress.co.jp/e/2010/01/12/7156 ブラウザでWebページを表示するときに、ブラウザはWebサーバーと通信しています。そのときに使われるのが「HTTP」というルールです。 HTTPは「HTTPリクエスト」と「HTTPレスポンス」に分けて考えます。ブラウザがサーバーに「このページを見たい」と頼む通信が「HTTPリクエスト」で、そのリクエストに応えてサーバーがブラウザに返す通信が「HTTPレスポンス」です。 HTTPリクエスト まず、ブラウザ → サーバーの「HTTPリクエスト」から説明しましょう。 HTTPリクエストはブラウザが送るものですから、HTTPリクエストを作るのはブラウザです。サーバーは、受け取ったHTTPリクエストの内容からどんな情報を返すかを判断します。 HTTPリクエストには「HTTPリクエスト行」「HTTPヘッダー」「データ本体」の3つのパートがあります。 HTTPリクエストの1行目が、リクエスト内容を示す「HTTPリクエスト行」です。ここには、「メソッド」「URL」「HTTPのバージョン」の3つの情報が含まれています。「メソッド」はWebではほとんどの場合「GET」で、この場合、HTTPリクエストでは「データ本体」は送られません。メソッドが「POST」の場合(フォームから情報を送信するなどでmethod=”POST”が指定されている場合)は、HTTPヘッダーの後にデータ本体が続きます。 2行目以降が「HTTPヘッダー」で、次のようなものが代表的です。 ユーザーエージェント名(User-Agent) ブラウザの種類やOSの情報。アクセスしているのがブラウザではなく検索エンジンのクローラの場合、「Googlebot」などの名前が入ります。 リファラ(Referer) どのページから発生したリクエストなのかを示します。よく知られているのは、ページAにあるリンクをクリックしてページBに行った場合に、ページBへのHTTPリクエストにリファラーとしてページAが入ることです。ほかにも、ページCを表示する際にページ内で使われている画像をリクエストする際に、画像のHTTPリクエストにリファラーとしてページCが入っています。 更新されていたら(If-Modified-Since)/同じでなければ(If-None-Match) ブラウザは、一度表示したデータを「ローカルキャッシュ」として保存しておき、同じデータは何度も通信して取得しなくてもいいようにしています。そのときに、ローカルキャッシュのデータが変更されていないかチェックするために、ファイルの変更日付や管理情報をリクエストに含めておきます。すると、「更新されていなければその旨教えて」という意味になります。 クッキー(Cookie) ブラウザに保存されているクッキーデータは毎回サーバーに送られています。ログイン状態を続けられるのは、ログイン時にサーバーから送られたクッキーをブラウザが保存しておいて、リクエストの際に送っているからですね。 受け取り希望(Accept、Accept-Language、Accept-Encoding、Accept-Charset) どんなデータを受け取りたいか、画像の種類や、言語、文字コードなどの希望を伝えます。英語バージョンと日本語バージョンなど複数の内容を提供している場合、サーバーはこの情報を元に適切な情報を返したり、動的なページでうまく提案したりできます。 HTTPレスポンス 次に、サーバー → ブラウザの「HTTPレスポンス」を説明します。 HTTPレスポンスはサーバーがブラウザに送るものですから、HTTPレスポンスを作るのはサーバーです。ブラウザは、受け取ったHTTPレスポンスを処理して画面に表示します。 HTTPレスポンスには「レスポンス状態行」「HTTPヘッダー」「データ本体」の3つのパートがあります。「データ本体」は、みなさんが通常見ているHTMLや画像のデータです。実際にはブラウザは、データ本体の前に「レスポンス状態行」と「HTTPヘッダー」を受け取っていますが、通常、画面には表示してくれません。 HTTPレスポンスの1行目が、リクエストに対する返答の状態を示す「レスポンス状態行」です。ここには、「状態コード」(「HTTPステータスコード」とも呼ばれる)などが含まれます。HTTPステータスコードは3桁の数字で表されます。よく使われるステータスコードは、次のように分類されます。 200番台は成功 200:OK、データを送ります 300番台はリダイレクト 301:新しい場所から取得してください(今後もずっと) 302:新しい場所から取得してください(今回だけ) 304:変更されていません(データ本体は送られない) 400番台はクライアント側のエラー 401:ユーザー認証が必要です 403:アクセスが禁止されています 404:見つかりませんでした 500番台はサーバー側のエラー 500:内部エラー 503:現在はサービス提供不可能 「HTTPヘッダー」は、データ本体の前に送られてくる、各種の状態を示す情報が入れられている部分です。HTTPレスポンスの代表的なHTTPヘッダーには次のようなものがあります。 コンテンツタイプ(Content-Type) データがHTMLなのか画像なのかや、文字コードなどの情報。 再利用期限(Expires) 取得したデータを再度サーバーに問い合わせなくてもブラウザが再利用していい期限(キャッシュの制御に使われる)。 データの最終更新日時(Last-Modified)やエンティティ情報(ETag) HTMLや画像などがいつ更新されたものかの情報や、サーバー上のファイルの場所ID、ファイルのサイズ、更新日時などから算出した、更新チェック情報。次回同じデータをリクエストする際に、これらの情報を使って更新されているかどうかを確認します。 キャッシュ制御(Cache-ControlやPragma) ブラウザや通信を橋渡しするプロキシが、データのキャッシュをどう扱うかの情報。 接続状況(Connection) 接続を持続するのか(keep-alive)、毎回接続を切断するのか(close)。ブラウザもサーバーもHTTPバージョン1.1の持続接続(keep-alive)を使える場合、通信のやりとりが効率良くなります。 移動先(Location) リクエストと違う場所からデータを取得するように示す指示。新しい場所のURLが含まれます。いわゆるリダイレクト先を示す情報です。 HTTPヘッダーの小ネタ […]


火災発生時に備えて、避難道/道具の準備を充実した。

by Hoàng Hải Triều / Tháng Tư 2, 2018

最近、ベトナムのホーチミン市の8区にあるCarinaという高級マンションで、火災が発生して、なんと13人の犠牲者も出てしまいました。 やはり、火災が出ないように未然に防ぐことと、火災が出たら、安全に逃げられることを両方実施しなければいけないのですね。 弊社も、先日、【もしも、火災が発生したどう逃げるか】と検討したところ、やっぱり、隣のビルにジャンプするしかないという結論になりました。なお、隣のビルとの距離だと、どうしても安全にジャンプできそうもない距離でした。そこで、さっそく、安全に逃げられる『はしご』、安全に逃げるロープの『固定パイプ』を作って、備えました。 ちなみに、設備と取り付け作業で、合計2万円でした。 皆様も是非、ご参考まで!!


Cドライブがいっぱいになった時の対策

by Hoàng Hải Triều / Tháng Ba 15, 2018

次のフォルダにあるファイルは不要ですが、Windowsの自動削除ツールだと削除対象となっていないので、自分で手動で削除するしかありません。 C:\Windows\Temp C:\Users\{user name}\AppData\Local\Temp C:\Documents and Settings\{user name}\Local Settings\Temp C:\Users\{user name}\AppData\Local\Microsoft\Windows\Temporary Internet Files C:\Documents and Settings\{user name}\Local Settings\Temporary Internet Files C:\WINDOWS\SoftwareDistribution\Download C:\hiberfil.sys


他のユーザーの公開鍵をサーバに追加して、サーバーにアクセス可能にする

by Lê Thị Mỹ Trinh / Tháng Mười Một 10, 2017

執筆者:Hoang Hai Trieu 普通のユーザー(管理権限なしのユーザ)でも、他のユーザーの公開鍵をサーバに追加して、そのユーザに対してサーバへのアクセスを可能にすることができる。 実施方法: アクセス権を持つ普通のユーザーアカウントでSSHでログインする 「vi ~/.ssh/authorized_keys」のコマンドで、アクセス権を持つ全てのユーザーの公開鍵を定義するファイルを編集する。 このファイルの末尾にこれから追加するユーザーの公開鍵をコピーする。 注意:「I]キーで編集モードに入る。「ESC]キーで編集モードがを終了する(コマンドモードに入る)。 コマンドモードで、「ZZ]キーでファイルを保存し、編集を終了する。


Mysqlのフルテキスト検索

by Lê Thị Mỹ Trinh / Tháng Mười 27, 2017

2017年1月13日 執筆者:Tran Thanh Luan 通常、曖昧検索のクエリーを作ろうとするとすぐに以下のクエリが考えられます。 SELECT id,title,description FROM book WHERE title LIKE ‘%keyword%’ しかし、これは不正確、速度が遅い、アクセントマーク付きのべトナム語は対応できない等いくつかの弱点がまだ存在します。 この場合、フルテキスト検索を使用する、上記の問題を回避することが出来ます。


to-top