SlideShare une entreprise Scribd logo
1  sur  32
HTTP通信とは
 Eclipse
 Herokuアカウント
 Heroku for Eclipse
 ADT for Eclipse
 SourceTree
 http://mergedoc.sourceforge.jp/in
dex.html#/pleiades.html にアクセ
ス
 Eclipse4.2 Junoをクリック
 JavaのFull Editionを選択してダウンロー
ド
 (32bitか64bitかは各人のPCで確認するこ
と)
 ダウンロードしたzipファイルを
解凍し、フォルダ毎Cドライブ
直下に配置する
 その際に、フォルダ名を
『pleiades』に変更する
 https://www.heroku.com/ にアク
セスし、Sing Up Freeからアカウ
ントを作成する
 PaaS(Platform as a Service)
 ソフトウウェアを構築させる土
台となるプラットフォームを、
インターネット経由で使用する
ことが出来るサービス
 Herokuの場合、ベースとなるOS
は、DebianもしくはDebianを
ベースに開発されたUbuntu
 Eclipseのメニューから[ヘルプ]-
>[新規ソフトウェアのインストー
ル]を選択
 [作業対象]にhttps://eclipse-
plugin.herokuapp.com/install と入
力し、[追加]をクリック
 [名前]にHerokuと入力して、[OK]
をクリック
 [Heroku eclipse Integration]に
チェックを入れ、[次へ]をク
リック
 [次へ]をクリック
 [OK]をクリックし、eclipseを再
起動する
 eclipseのメニューから[ウインドウ]-
>[設定]を選択する
 Herokuを選択して、emailアドレ
スとパスワードを入力し、ログ
インする
 Herokuへログインするための
SSH Keyを作成する
 Eclipseの設定の[一般]->[ネット
ワーク接続]->[SSH2]を選択する
 [キー管理]のタブを選択し、
[RSA鍵の生成]をクリック
 パスフレーズを入力して、[秘密
鍵の保存]をクリック
※パスフレーズは忘れないよう
に!!
 Herokuメニューを選択し、キーのロード
で先ほど生成したキーを選択する
 キーのロードが終わったら[追加] をクリッ
クし、[適用]をクリックする
 これから、サーバサイドのプロ
グラムを作成します。
 パッケージエクスプローラーの
中で右クリックし、[新規]->[そ
の他]を選択する
 プロジェクト名に
『HttpServerEx』と入力し、
[Embedded Jetty-Servlet…]を選択
して[終了]をクリック
 プロジェクトを展開して、
Main.javaを選択
 実行をクリック
 http://localhost:8080 にアクセス
し、以下のような画面が表示さ
れればOK
 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>
 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");
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);
}
リクエストライン(メソッド URI プロトコル)
リクエストヘッダ
ヘッダ名 : ヘッダ値
・
・
メッセージボディ(POSTの場合はここにクエリが入る)
空行(CRLF)
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)
ステータスライン
レスポンスヘッダ
ヘッダ名 : ヘッダ値
・
・
空行(CRLF)
レスポンスボディ(HTMLなど)
 Chromeなどで内容を見てみましょう
番号 意味
200 OK(成功)
302 Found (リダイレクト)
304 Not Modified (キャッシュを参照)
400 Bad Request (Clientからのリクエスト不備)
403 Forbidden (アクセス禁止)
404 Not Found (ページが存在しない)
500 Internal Server Error (サーバエラー)
503 Service Unavailable (サーバが過負荷状態)
 Heroku Eclipse Pluginの設定
 https://devcenter.heroku.com/articles/getting-started-with-heroku-eclipse
 TCP/IP HTTPとは
 http://www.infraexpert.com/study/tcpip16.html

Contenu connexe

En vedette

[Ps11]ネットワーク第4回
[Ps11]ネットワーク第4回[Ps11]ネットワーク第4回
[Ps11]ネットワーク第4回
Yukiko Kato
 
Javaプログラミング入門【第6回】
Javaプログラミング入門【第6回】Javaプログラミング入門【第6回】
Javaプログラミング入門【第6回】
Yukiko Kato
 
Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】
Yukiko Kato
 
Javaデザインパターン入門【第2回】
Javaデザインパターン入門【第2回】Javaデザインパターン入門【第2回】
Javaデザインパターン入門【第2回】
Yukiko Kato
 

En vedette (18)

[Ps11]ネットワーク第4回
[Ps11]ネットワーク第4回[Ps11]ネットワーク第4回
[Ps11]ネットワーク第4回
 
Javaプログラミング入門【第6回】
Javaプログラミング入門【第6回】Javaプログラミング入門【第6回】
Javaプログラミング入門【第6回】
 
Javaプログラミング入門【第7回】
Javaプログラミング入門【第7回】Javaプログラミング入門【第7回】
Javaプログラミング入門【第7回】
 
ネットワーク第6回
ネットワーク第6回ネットワーク第6回
ネットワーク第6回
 
ネットワーク第8回目
ネットワーク第8回目ネットワーク第8回目
ネットワーク第8回目
 
Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】
 
Javaプログラミング入門【第3回】
Javaプログラミング入門【第3回】Javaプログラミング入門【第3回】
Javaプログラミング入門【第3回】
 
ネットワーク第9回
ネットワーク第9回ネットワーク第9回
ネットワーク第9回
 
Javaプログラミング入門【第2回】
Javaプログラミング入門【第2回】Javaプログラミング入門【第2回】
Javaプログラミング入門【第2回】
 
Javaデザインパターン入門【第2回】
Javaデザインパターン入門【第2回】Javaデザインパターン入門【第2回】
Javaデザインパターン入門【第2回】
 
Javaデザインパターン入門【第3回】
Javaデザインパターン入門【第3回】Javaデザインパターン入門【第3回】
Javaデザインパターン入門【第3回】
 
Javaプログラミング入門【第9回】
Javaプログラミング入門【第9回】Javaプログラミング入門【第9回】
Javaプログラミング入門【第9回】
 
Javaプログラミング入門【第4回】
Javaプログラミング入門【第4回】Javaプログラミング入門【第4回】
Javaプログラミング入門【第4回】
 
[PS11]ネットワーク第5回
[PS11]ネットワーク第5回[PS11]ネットワーク第5回
[PS11]ネットワーク第5回
 
[PS11]ネットワーク第6回
[PS11]ネットワーク第6回[PS11]ネットワーク第6回
[PS11]ネットワーク第6回
 
ネットワーク第7回
ネットワーク第7回ネットワーク第7回
ネットワーク第7回
 
Javaプログラミング入門【第1回】
Javaプログラミング入門【第1回】Javaプログラミング入門【第1回】
Javaプログラミング入門【第1回】
 
ネットワーク第3回目
ネットワーク第3回目ネットワーク第3回目
ネットワーク第3回目
 

Similaire à ネットワーク第2回目

まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
Hideharu MATSUFUJI
 
100626 ec cube勉強会初心者向けスライド
100626 ec cube勉強会初心者向けスライド100626 ec cube勉強会初心者向けスライド
100626 ec cube勉強会初心者向けスライド
kuroki
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
Naruto TAKAHASHI
 
Aeolus Conductorによる複数環境へのデプロイ自動化
Aeolus Conductorによる複数環境へのデプロイ自動化Aeolus Conductorによる複数環境へのデプロイ自動化
Aeolus Conductorによる複数環境へのデプロイ自動化
Etsuji Nakai
 

Similaire à ネットワーク第2回目 (20)

Php開発環境
Php開発環境Php開発環境
Php開発環境
 
Verilog-HDL Tutorial (15) software
Verilog-HDL Tutorial (15) softwareVerilog-HDL Tutorial (15) software
Verilog-HDL Tutorial (15) software
 
Ide env
Ide envIde env
Ide env
 
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
 
100626 ec cube勉強会初心者向けスライド
100626 ec cube勉強会初心者向けスライド100626 ec cube勉強会初心者向けスライド
100626 ec cube勉強会初心者向けスライド
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
 
TeamFileご提案資料
TeamFileご提案資料TeamFileご提案資料
TeamFileご提案資料
 
MultiSpecInstallation
MultiSpecInstallationMultiSpecInstallation
MultiSpecInstallation
 
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxはじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & Linux
 
Scoop!
Scoop!Scoop!
Scoop!
 
ownCloud and CLOUDIAN HyperStore
ownCloud and CLOUDIAN HyperStoreownCloud and CLOUDIAN HyperStore
ownCloud and CLOUDIAN HyperStore
 
20230128.pptx
20230128.pptx20230128.pptx
20230128.pptx
 
最近の PowerShell のお話
最近の PowerShell のお話最近の PowerShell のお話
最近の PowerShell のお話
 
Firefox OSについて
Firefox OSについてFirefox OSについて
Firefox OSについて
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)
 
Perl入学式 #1
Perl入学式 #1Perl入学式 #1
Perl入学式 #1
 
Aeolus Conductorによる複数環境へのデプロイ自動化
Aeolus Conductorによる複数環境へのデプロイ自動化Aeolus Conductorによる複数環境へのデプロイ自動化
Aeolus Conductorによる複数環境へのデプロイ自動化
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
 
C#版人狼知能エージェントの作り方(MonoDevelop/Xamarin Studio編)
C#版人狼知能エージェントの作り方(MonoDevelop/Xamarin Studio編)C#版人狼知能エージェントの作り方(MonoDevelop/Xamarin Studio編)
C#版人狼知能エージェントの作り方(MonoDevelop/Xamarin Studio編)
 

Dernier

The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
 

Dernier (7)

UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 

ネットワーク第2回目