ネットワーク第2回目

367 views
312 views

Published on

今回はHTTPのお話。
Herokuで簡易サーバ立てて実践します(こっちがメインになった。。

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
367
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

ネットワーク第2回目

  1. 1. HTTP通信とは
  2. 2.  Eclipse  Herokuアカウント  Heroku for Eclipse  ADT for Eclipse  SourceTree
  3. 3.  http://mergedoc.sourceforge.jp/in dex.html#/pleiades.html にアクセ ス  Eclipse4.2 Junoをクリック
  4. 4.  JavaのFull Editionを選択してダウンロー ド  (32bitか64bitかは各人のPCで確認するこ と)
  5. 5.  ダウンロードしたzipファイルを 解凍し、フォルダ毎Cドライブ 直下に配置する  その際に、フォルダ名を 『pleiades』に変更する
  6. 6.  https://www.heroku.com/ にアク セスし、Sing Up Freeからアカウ ントを作成する
  7. 7.  PaaS(Platform as a Service)  ソフトウウェアを構築させる土 台となるプラットフォームを、 インターネット経由で使用する ことが出来るサービス  Herokuの場合、ベースとなるOS は、DebianもしくはDebianを ベースに開発されたUbuntu
  8. 8.  Eclipseのメニューから[ヘルプ]- >[新規ソフトウェアのインストー ル]を選択
  9. 9.  [作業対象]にhttps://eclipse- plugin.herokuapp.com/install と入 力し、[追加]をクリック
  10. 10.  [名前]にHerokuと入力して、[OK] をクリック
  11. 11.  [Heroku eclipse Integration]に チェックを入れ、[次へ]をク リック
  12. 12.  [次へ]をクリック
  13. 13.  [OK]をクリックし、eclipseを再 起動する
  14. 14.  eclipseのメニューから[ウインドウ]- >[設定]を選択する
  15. 15.  Herokuを選択して、emailアドレ スとパスワードを入力し、ログ インする
  16. 16.  Herokuへログインするための SSH Keyを作成する  Eclipseの設定の[一般]->[ネット ワーク接続]->[SSH2]を選択する
  17. 17.  [キー管理]のタブを選択し、 [RSA鍵の生成]をクリック  パスフレーズを入力して、[秘密 鍵の保存]をクリック ※パスフレーズは忘れないよう に!!
  18. 18.  Herokuメニューを選択し、キーのロード で先ほど生成したキーを選択する  キーのロードが終わったら[追加] をクリッ クし、[適用]をクリックする
  19. 19.  これから、サーバサイドのプロ グラムを作成します。
  20. 20.  パッケージエクスプローラーの 中で右クリックし、[新規]->[そ の他]を選択する
  21. 21.  プロジェクト名に 『HttpServerEx』と入力し、 [Embedded Jetty-Servlet…]を選択 して[終了]をクリック
  22. 22.  プロジェクトを展開して、 Main.javaを選択  実行をクリック
  23. 23.  http://localhost:8080 にアクセス し、以下のような画面が表示さ れればOK
  24. 24.  src/main/webapps/index.jsp に以下を追 加する <a href=“hello?method=get”>GETリクエス ト</a><br> <form action=“hello” method=“post”> POSTリクエストをする <input type=“text”> <input type=“submit” name=“submit” value=“送信”> </form>
  25. 25.  HelloServlet.javaを変更する  doGetメソッド内に以下のように修正 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { ServletOutputStream out = resp.getOutputStream(); StringBuffer sb = new StringBuffer(); sb.append("---------- request Line ----------------n"); sb.append("method : ").append(req.getMethod()).append("n"); sb.append("requestURL : ").append(req.getRequestURI()).append("n"); sb.append("get query : ").append(req.getQueryString()).append("n"); Enumeration params = req.getParameterNames(); while(params.hasMoreElements()){ String param = (String) params.nextElement(); sb.append(param).append(" : ").append(req.getParameter(param)).append("n"); } sb.append("n");
  26. 26. sb.append("---------- request Headers ----------------n"); Enumeration headerNames = req.getHeaderNames(); while(headerNames.hasMoreElements()) { String headerName = (String) headerNames.nextElement(); sb.append(headerName).append(" : ").append(req.getHeader(headerName)).append("n"); } out.write(sb.toString().getBytes()); out.flush(); out.close(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); }
  27. 27. リクエストライン(メソッド URI プロトコル) リクエストヘッダ ヘッダ名 : ヘッダ値 ・ ・ メッセージボディ(POSTの場合はここにクエリが入る) 空行(CRLF)
  28. 28. GET /index.html HTTP/1.1 Host : localhost:8080 Accept : text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language : ja,en-US;q=0.8,en;q=0.6 Referer : http://localhost:8080/ User-Agent : Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36 Connection : keep-alive Accept-Encoding : gzip, deflate aaa=bbb&ccc=dddd 空行(CRLF)
  29. 29. ステータスライン レスポンスヘッダ ヘッダ名 : ヘッダ値 ・ ・ 空行(CRLF) レスポンスボディ(HTMLなど)
  30. 30.  Chromeなどで内容を見てみましょう
  31. 31. 番号 意味 200 OK(成功) 302 Found (リダイレクト) 304 Not Modified (キャッシュを参照) 400 Bad Request (Clientからのリクエスト不備) 403 Forbidden (アクセス禁止) 404 Not Found (ページが存在しない) 500 Internal Server Error (サーバエラー) 503 Service Unavailable (サーバが過負荷状態)
  32. 32.  Heroku Eclipse Pluginの設定  https://devcenter.heroku.com/articles/getting-started-with-heroku-eclipse  TCP/IP HTTPとは  http://www.infraexpert.com/study/tcpip16.html

×