Chiroru's Diary

日々の学びをちょこちょこメモしていきます

HTTPの基本の理解

【目次】

HTTP

HyperText Transfer Protocol。クライアント(コマンドやブラウザ)とwebサーバの間でwebページを送受信するためのプロトコル
クライアントからHTTPリクエスをサーバーに送り、それを受けたサーバーがクライアントへHTTPレスポンスを返す。

HTTPリクエス

構成は以下。

  • 1行目 リクエストライン:「メソッド」「 リクエスURI」「 HTTPバージョン」
  • 2行目以降 リクエストヘッダ:「ヘッダ名:ヘッダ値」

HTTPレスポンス

構成は以下。

  • 1行目 ステータスライン:HTTPリクエストの結果
  • 2行目以降 ヘッダ:ステータスラインに書ききれないレスポンスの情報
  • レスポンスボディ

Ajax

Ajaxが行うHTTP通信と、通常のHTTP通信に違いはない。 従来ではクリックするタイミングでHTTPリクエストを送信していたのを、Ajaxの場合、画面遷移を行わずにHTTPリクエストが送信される。(送信のタイミングのコントロールが可能)

telnet

ネットワークを経由して、サーバに接続する遠隔操作の仕組み。
sshとの違いは、暗号化できるかどうか。

またtelnetはhttp通信(https通信はできない)ため、ポート番号は80番を使用。
(※TCP/80 : HTTP・TCP/443 : HTTPS

telnetでGET

ページ情報を取得してくる。反応が「200」であればOK

$ telnet <ホスト名orIPアドレス> 80  

Escape character is '^]'.
# 入力待ち  
GET /articles/1 HTTP/1.1  
# リクエストライン:GET <リクエスト先ページ> <HTTPバージョン指定>    
Host: <ホスト名>   
# リクエストヘッダ:Host: <ホスト名>記載  

telnetでPOST

新しいページを作る。反応が「302 Found」であればOK

$ telnet <ホスト名orIPアドレス> 80   

Escape character is '^]'.  

POST /articles HTTP/1.1  
# リクエストライン  
Host: <ホスト名>  
Content-Length:48  
# (article[title]=chiiii&article[body]=chiiii body )の文字列が1バイト48個のため記述  
<空行>  
article[title]=chiiii&article[body]=chiiii body  
# クリエの記述

参考: HTTPの基本1 #2 telnetでGETとPOSTを試してみる