Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
ksimoji
PDF, PPTX
4,000 views
第9回rest勉強会 ダウンロード・アップロード編
2015/9/25に行われたAWS上で構築するRESTfulアプリ勉強会~Web開発ワークショップ~【第9回】で使用した資料です。
Software
◦
Read more
3
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 57
2
/ 57
3
/ 57
4
/ 57
5
/ 57
6
/ 57
7
/ 57
8
/ 57
9
/ 57
10
/ 57
11
/ 57
12
/ 57
13
/ 57
14
/ 57
15
/ 57
16
/ 57
17
/ 57
18
/ 57
19
/ 57
20
/ 57
21
/ 57
22
/ 57
23
/ 57
24
/ 57
25
/ 57
26
/ 57
27
/ 57
28
/ 57
29
/ 57
30
/ 57
31
/ 57
32
/ 57
33
/ 57
34
/ 57
35
/ 57
36
/ 57
37
/ 57
38
/ 57
39
/ 57
40
/ 57
41
/ 57
42
/ 57
43
/ 57
44
/ 57
45
/ 57
46
/ 57
47
/ 57
48
/ 57
49
/ 57
50
/ 57
51
/ 57
52
/ 57
53
/ 57
54
/ 57
55
/ 57
56
/ 57
57
/ 57
More Related Content
PPTX
Introduction to openshift
by
MamathaBusi
PPTX
Awsでのsql高可用構成 Always On
by
ShinodaYukihiro
PDF
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
by
Amazon Web Services Japan
PDF
Always on 可用性グループ 構築時のポイント
by
Masayuki Ozawa
PDF
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
PDF
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
by
Toru Makabe
PDF
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
by
日本マイクロソフト株式会社
PDF
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
by
Amazon Web Services Japan
Introduction to openshift
by
MamathaBusi
Awsでのsql高可用構成 Always On
by
ShinodaYukihiro
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
by
Amazon Web Services Japan
Always on 可用性グループ 構築時のポイント
by
Masayuki Ozawa
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
by
Toru Makabe
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
by
日本マイクロソフト株式会社
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
by
Amazon Web Services Japan
What's hot
PDF
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
by
Masahito Zembutsu
PDF
それでも僕はユニットテストを書きたい - Pester powered by PowerShell
by
Hidari Ikw
PDF
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
by
Amazon Web Services Japan
PPTX
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
PDF
多要素認証による Amazon WorkSpaces の利用
by
Amazon Web Services Japan
PDF
Java EE 再入門
by
minazou67
PPTX
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
by
ShuheiUda
PDF
Open Liberty / WebSphere Liberty
by
Takakiyo Tanaka
PDF
全自動Zabbix
by
真乙 九龍
PDF
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
PPTX
AWS VM import / export ハンズオン
by
Emma Haruka Iwao
PPTX
Helidon 概要
by
オラクルエンジニア通信
PDF
VPC Reachability Analyzer 使って人生が変わった話
by
Noritaka Sekiyama
PPTX
Hybrid Azure AD Join 動作の仕組みを徹底解説
by
Yusuke Kodama
PDF
第18回しゃちほこオラクル俱楽部
by
オラクルエンジニア通信
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
PPTX
Ceph アーキテクチャ概説
by
Emma Haruka Iwao
PDF
Security-JAWS #21 Well-ArchitectedなIAMポリシーに挑戦する(改) 〜最小権限の原則を実装ってどゆこと?〜
by
Takamasa Ohtake
PPTX
API Gateway - ヘッダー/クエリー変換、認証・認可機能詳細
by
オラクルエンジニア通信
PDF
[AKIBA.AWS] VPCをネットワーク図で理解してみる
by
Shuji Kikuchi
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
by
Masahito Zembutsu
それでも僕はユニットテストを書きたい - Pester powered by PowerShell
by
Hidari Ikw
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
by
Amazon Web Services Japan
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
多要素認証による Amazon WorkSpaces の利用
by
Amazon Web Services Japan
Java EE 再入門
by
minazou67
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
by
ShuheiUda
Open Liberty / WebSphere Liberty
by
Takakiyo Tanaka
全自動Zabbix
by
真乙 九龍
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
AWS VM import / export ハンズオン
by
Emma Haruka Iwao
Helidon 概要
by
オラクルエンジニア通信
VPC Reachability Analyzer 使って人生が変わった話
by
Noritaka Sekiyama
Hybrid Azure AD Join 動作の仕組みを徹底解説
by
Yusuke Kodama
第18回しゃちほこオラクル俱楽部
by
オラクルエンジニア通信
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
Ceph アーキテクチャ概説
by
Emma Haruka Iwao
Security-JAWS #21 Well-ArchitectedなIAMポリシーに挑戦する(改) 〜最小権限の原則を実装ってどゆこと?〜
by
Takamasa Ohtake
API Gateway - ヘッダー/クエリー変換、認証・認可機能詳細
by
オラクルエンジニア通信
[AKIBA.AWS] VPCをネットワーク図で理解してみる
by
Shuji Kikuchi
Similar to 第9回rest勉強会 ダウンロード・アップロード編
PDF
Beginning Java EE 6 勉強会(7) #bje_study
by
ikeyat
PDF
Rails と Rack と HTTP と通信の話
by
Progate, Inc.
PDF
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
by
博文 斉藤
PDF
HTTP入門
by
Sho A
PDF
エコなWebサーバー
by
emasaka
PDF
Yahoo!ボックスAPI Hackathon向け資料
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo!ボックスAPI Hackday資料
by
Yahoo!デベロッパーネットワーク
Beginning Java EE 6 勉強会(7) #bje_study
by
ikeyat
Rails と Rack と HTTP と通信の話
by
Progate, Inc.
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
by
博文 斉藤
HTTP入門
by
Sho A
エコなWebサーバー
by
emasaka
Yahoo!ボックスAPI Hackathon向け資料
by
Yahoo!デベロッパーネットワーク
Yahoo!ボックスAPI Hackday資料
by
Yahoo!デベロッパーネットワーク
More from ksimoji
PDF
PHPでWebSocketを実装してみてわかったこと
by
ksimoji
PDF
第12回rest勉強会 これまでの補足・展望編
by
ksimoji
PDF
第11回rest勉強会 リファクタリング(クライアント編)
by
ksimoji
PDF
第10回rest勉強会 リファクタリング(サーバ編)編
by
ksimoji
PDF
第8回rest勉強会 bootstrap編
by
ksimoji
PDF
第7回rest勉強会 バリデーション編
by
ksimoji
PDF
第6回rest勉強会 アソシエーション編
by
ksimoji
PDF
第5回rest勉強会 ログイン編
by
ksimoji
PDF
第4回REST勉強会 RequireJS編
by
ksimoji
PDF
第3回Rest勉強会 marionette編
by
ksimoji
PDF
第一回Rest勉強会 ワークショップ
by
ksimoji
PHPでWebSocketを実装してみてわかったこと
by
ksimoji
第12回rest勉強会 これまでの補足・展望編
by
ksimoji
第11回rest勉強会 リファクタリング(クライアント編)
by
ksimoji
第10回rest勉強会 リファクタリング(サーバ編)編
by
ksimoji
第8回rest勉強会 bootstrap編
by
ksimoji
第7回rest勉強会 バリデーション編
by
ksimoji
第6回rest勉強会 アソシエーション編
by
ksimoji
第5回rest勉強会 ログイン編
by
ksimoji
第4回REST勉強会 RequireJS編
by
ksimoji
第3回Rest勉強会 marionette編
by
ksimoji
第一回Rest勉強会 ワークショップ
by
ksimoji
第9回rest勉強会 ダウンロード・アップロード編
1.
ダウンロード・ アップロード機能 の実装 AWS上で構築するRESTfulアプリ勉強会 ~Web開発ワークショップ~【第9回】
2.
概要
3.
概要 1. ダウンロード? 2. アップロード?
4.
概要 1. ダウンロード? 2. アップロード?
5.
ダウンロード =HTTPレスポンスボ ディをローカルに保存
6.
HTTPレスポンス HTTP/1.1 200 OK Server:
nginx Date: Thu, 24 Sep 2015 09:11:53 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked 〜略〜 /openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> 〜以下略〜 ステータスコード レスポンスヘッダ レスポンスボディ 空行
7.
ステータスコード HTTP/1.1 200 OK Server:
nginx Date: Thu, 24 Sep 2015 09:11:53 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked 〜略〜 /openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> 〜以下略〜 レスポンスヘッダ レスポンスボディ 空行
8.
ステータスコード HTTP/1.1 200 OK Server:
nginx Date: Thu, 24 Sep 2015 09:11:53 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked 〜略〜 /openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> 〜以下略〜 レスポンスヘッダ レスポンスボディ 空行HTTP1.1で通信しました。 ステータスコードは200, 正常です
9.
レスポンスヘッダ HTTP/1.1 200 OK Server:
nginx Date: Thu, 24 Sep 2015 09:11:53 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked 〜略〜 /openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> 〜以下略〜 レスポンスボディ 空行
10.
レスポンスヘッダ HTTP/1.1 200 OK Server:
nginx Date: Thu, 24 Sep 2015 09:11:53 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked 〜略〜 /openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> 〜以下略〜 レスポンスボディ 空行 レスポンスに関する付加情報 e.g) Content-Type: text/html; charset=UTF-8 レスポンスボディはhtmlですよ、エンコードはUTF-8ですよ!
11.
空行 HTTP/1.1 200 OK Server:
nginx Date: Thu, 24 Sep 2015 09:11:53 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked 〜略〜 /openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> 〜以下略〜 レスポンスボディ
12.
空行 HTTP/1.1 200 OK Server:
nginx Date: Thu, 24 Sep 2015 09:11:53 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked 〜略〜 /openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> 〜以下略〜 レスポンスボディ これより下がレスポンスボディです!
13.
レスポンスボディ HTTP/1.1 200 OK Server:
nginx Date: Thu, 24 Sep 2015 09:11:53 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked 〜略〜 /openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> 〜以下略〜 ご所望のデータです!
14.
レスポンスボディ HTTP/1.1 200 OK Server:
nginx Date: Thu, 24 Sep 2015 09:11:53 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked 〜略〜 /openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> 〜以下略〜 ファイルをダウンロードする時も、 ファイルコンテンツはここに入って くる
15.
…表示 or 保存? ブラウザ: 「このレスポンスボディ をどうしようか?」
16.
レスポンスヘッダを見よう! HTTP/1.1 200 OK Server:
nginx Date: Thu, 24 Sep 2015 09:11:53 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked 〜略〜 /openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> 〜以下略〜 レスポンスボディ 空行
17.
レスポンスヘッダを見よう! HTTP/1.1 200 OK Server:
nginx Date: Thu, 24 Sep 2015 09:11:53 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked 〜略〜 /openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> 〜以下略〜 レスポンスボディ 空行 ブラウザ: 「Content-Type: text/html とあるから表示だな!」
18.
レスポンスヘッダを見よう! HTTP/1.1 200 OK Server:
nginx Date: Thu, 24 Sep 2015 09:11:53 GMT Content-Type: text/csv; charset=UTF-8 Transfer-Encoding: chunked 〜略〜 /openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> 〜以下略〜 レスポンスボディ 空行
19.
レスポンスヘッダを見よう! HTTP/1.1 200 OK Server:
nginx Date: Thu, 24 Sep 2015 09:11:53 GMT Content-Type: text/csv; charset=UTF-8 Transfer-Encoding: chunked 〜略〜 /openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> 〜以下略〜 レスポンスボディ 空行 ブラウザ: 「Content-Type: text/csv は保存だな!」
20.
ブラウザによっては… HTTP/1.1 200 OK Server:
nginx Date: Thu, 24 Sep 2015 09:11:53 GMT Content-Type: text/csv; charset=UTF-8 Transfer-Encoding: chunked 〜略〜 /openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> 〜以下略〜 レスポンスボディ 空行 ブラウザX: 「Content-Type: text/csv は表示だな!」
21.
レスポンスヘッダを見よう! HTTP/1.1 200 OK Server:
nginx Date: Thu, 24 Sep 2015 09:11:53 GMT Content-Type: text/csv; charset=UTF-8 Content-Disposition: attachment; filename="todo.csv" Transfer-Encoding: chunked 〜略〜 /openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> 〜以下略〜 レスポンスボディ 空行 ブラウザ: 「Content-Disposition: attachment; filename= todo.csv だか ら、 todo.csv で保存だな!」
22.
こうなるようにレスポン スヘッダを設定します! やること
23.
概要 1. ダウンロード? 2. アップロード?
24.
アップロード =HTTPリクエストボ ディにローカルファイ ルの内容を乗っける
25.
HTTPリクエスト POST /rest-study/todo_lists/upload.json HTTP/1.1 Host:
10.0.1.206 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0 〜略〜 Content-Length: 779 Content-Type: multipart/form-data; boundary=---------------------------1395431092341454357747073315 〜略〜 Cache-Control: no-cache -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="0"; filename="todolist1.txt" Content-Type: text/plain todolist1.txtからアップロードしたTODO1 〜略〜 todolist1.txtからアップロードしたTODO5 -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="1"; filename="todolist2.txt" Content-Type: text/plain todolist2.txtからアップロードしたTODO1 todolist2.txtからアップロードしたTODO2 -----------------------------1395431092341454357747073315-- メソッド、URI リクエストヘッダ リクエストボディ 空行
26.
メソッド、URI POST /rest-study/todo_lists/upload.json HTTP/1.1 Host:
10.0.1.206 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0 〜略〜 Content-Length: 779 Content-Type: multipart/form-data; boundary=---------------------------1395431092341454357747073315 〜略〜 Cache-Control: no-cache -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="0"; filename="todolist1.txt" Content-Type: text/plain todolist1.txtからアップロードしたTODO1 〜略〜 todolist1.txtからアップロードしたTODO5 -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="1"; filename="todolist2.txt" Content-Type: text/plain todolist2.txtからアップロードしたTODO1 todolist2.txtからアップロードしたTODO2 -----------------------------1395431092341454357747073315-- リクエストヘッダ リクエストボディ 空行
27.
メソッド、URI POST /rest-study/todo_lists/upload.json HTTP/1.1 Host:
10.0.1.206 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0 〜略〜 Content-Length: 779 Content-Type: multipart/form-data; boundary=---------------------------1395431092341454357747073315 〜略〜 Cache-Control: no-cache -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="0"; filename="todolist1.txt" Content-Type: text/plain todolist1.txtからアップロードしたTODO1 〜略〜 todolist1.txtからアップロードしたTODO5 -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="1"; filename="todolist2.txt" Content-Type: text/plain todolist2.txtからアップロードしたTODO1 todolist2.txtからアップロードしたTODO2 -----------------------------1395431092341454357747073315-- リクエストヘッダ リクエストボディ 空行メソッドは「POST」、 URL「/rest-study/todo_lists/ upload.json」にHTTP1.1で通信 します。
28.
リクエストヘッダ POST /rest-study/todo_lists/upload.json HTTP/1.1 Host:
10.0.1.206 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0 〜略〜 Content-Length: 779 Content-Type: multipart/form-data; boundary=---------------------------1395431092341454357747073315 〜略〜 Cache-Control: no-cache -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="0"; filename="todolist1.txt" Content-Type: text/plain todolist1.txtからアップロードしたTODO1 〜略〜 todolist1.txtからアップロードしたTODO5 -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="1"; filename="todolist2.txt" Content-Type: text/plain todolist2.txtからアップロードしたTODO1 todolist2.txtからアップロードしたTODO2 -----------------------------1395431092341454357747073315-- リクエストボディ 空行
29.
リクエストヘッダ POST /rest-study/todo_lists/upload.json HTTP/1.1 Host:
10.0.1.206 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0 〜略〜 Content-Length: 779 Content-Type: multipart/form-data; boundary=---------------------------1395431092341454357747073315 〜略〜 Cache-Control: no-cache -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="0"; filename="todolist1.txt" Content-Type: text/plain todolist1.txtからアップロードしたTODO1 〜略〜 todolist1.txtからアップロードしたTODO5 -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="1"; filename="todolist2.txt" Content-Type: text/plain todolist2.txtからアップロードしたTODO1 todolist2.txtからアップロードしたTODO2 -----------------------------1395431092341454357747073315-- リクエストボディ 空行 リクエストに関する付加情報 e.g) Content-Length: 779 リクエストボディのサイ ズは779バイトですよ!
30.
空行 POST /rest-study/todo_lists/upload.json HTTP/1.1 Host:
10.0.1.206 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0 〜略〜 Content-Length: 779 Content-Type: multipart/form-data; boundary=---------------------------1395431092341454357747073315 〜略〜 Cache-Control: no-cache -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="0"; filename="todolist1.txt" Content-Type: text/plain todolist1.txtからアップロードしたTODO1 〜略〜 todolist1.txtからアップロードしたTODO5 -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="1"; filename="todolist2.txt" Content-Type: text/plain todolist2.txtからアップロードしたTODO1 todolist2.txtからアップロードしたTODO2 -----------------------------1395431092341454357747073315-- リクエストボディ
31.
空行 POST /rest-study/todo_lists/upload.json HTTP/1.1 Host:
10.0.1.206 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0 〜略〜 Content-Length: 779 Content-Type: multipart/form-data; boundary=---------------------------1395431092341454357747073315 〜略〜 Cache-Control: no-cache -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="0"; filename="todolist1.txt" Content-Type: text/plain todolist1.txtからアップロードしたTODO1 〜略〜 todolist1.txtからアップロードしたTODO5 -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="1"; filename="todolist2.txt" Content-Type: text/plain todolist2.txtからアップロードしたTODO1 todolist2.txtからアップロードしたTODO2 -----------------------------1395431092341454357747073315-- リクエストボディ これより下がリクエストボディです!
32.
リクエストボディ POST /rest-study/todo_lists/upload.json HTTP/1.1 Host:
10.0.1.206 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0 〜略〜 Content-Length: 779 Content-Type: multipart/form-data; boundary=---------------------------1395431092341454357747073315 〜略〜 Cache-Control: no-cache -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="0"; filename="todolist1.txt" Content-Type: text/plain todolist1.txtからアップロードしたTODO1 〜略〜 todolist1.txtからアップロードしたTODO5 -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="1"; filename="todolist2.txt" Content-Type: text/plain todolist2.txtからアップロードしたTODO1 todolist2.txtからアップロードしたTODO2 -----------------------------1395431092341454357747073315--
33.
リクエストボディ POST /rest-study/todo_lists/upload.json HTTP/1.1 Host:
10.0.1.206 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0 〜略〜 Content-Length: 779 Content-Type: multipart/form-data; boundary=---------------------------1395431092341454357747073315 〜略〜 Cache-Control: no-cache -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="0"; filename="todolist1.txt" Content-Type: text/plain todolist1.txtからアップロードしたTODO1 〜略〜 todolist1.txtからアップロードしたTODO5 -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="1"; filename="todolist2.txt" Content-Type: text/plain todolist2.txtからアップロードしたTODO1 todolist2.txtからアップロードしたTODO2 -----------------------------1395431092341454357747073315-- これを送ります!
34.
multipart/form-data POST /rest-study/todo_lists/upload.json HTTP/1.1 Host:
10.0.1.206 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0 〜略〜 Content-Length: 779 Content-Type: multipart/form-data; boundary=---------------------------1395431092341454357747073315 〜略〜 Cache-Control: no-cache -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="0"; filename="todolist1.txt" Content-Type: text/plain todolist1.txtからアップロードしたTODO1 〜略〜 todolist1.txtからアップロードしたTODO5 -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="1"; filename="todolist2.txt" Content-Type: text/plain todolist2.txtからアップロードしたTODO1 todolist2.txtからアップロードしたTODO2 -----------------------------1395431092341454357747073315-- ボディの中にまたヘッダとボディが?
35.
multipart/form-data POST /rest-study/todo_lists/upload.json HTTP/1.1 Host:
10.0.1.206 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0 〜略〜 Content-Length: 779 Content-Type: multipart/form-data; boundary=---------------------------1395431092341454357747073315 〜略〜 Cache-Control: no-cache -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="0"; filename="todolist1.txt" Content-Type: text/plain todolist1.txtからアップロードしたTODO1 〜略〜 todolist1.txtからアップロードしたTODO5 -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="1"; filename="todolist2.txt" Content-Type: text/plain todolist2.txtからアップロードしたTODO1 todolist2.txtからアップロードしたTODO2 -----------------------------1395431092341454357747073315-- todolist1.txtの情報
36.
multipart/form-data POST /rest-study/todo_lists/upload.json HTTP/1.1 Host:
10.0.1.206 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0 〜略〜 Content-Length: 779 Content-Type: multipart/form-data; boundary=---------------------------1395431092341454357747073315 〜略〜 Cache-Control: no-cache -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="0"; filename="todolist1.txt" Content-Type: text/plain todolist1.txtからアップロードしたTODO1 〜略〜 todolist1.txtからアップロードしたTODO5 -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="1"; filename="todolist2.txt" Content-Type: text/plain todolist2.txtからアップロードしたTODO1 todolist2.txtからアップロードしたTODO2 -----------------------------1395431092341454357747073315-- todolist1.txtの情報 todolist2.txtの情報
37.
multipart/form-data じゃない場合は? e.g.)application/json
38.
{"todo":"TODOを追加ボタンで登録 ","status":0,"assignee":"67"} application/json
39.
{"todo":"TODOを追加ボタンで登録 ","status":0,"assignee":"67"} application/json シンプルです
40.
multipart/form-data -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="0";
filename="todolist1.txt" Content-Type: text/plain todolist1.txtからアップロードしたTODO1 〜略〜 todolist1.txtからアップロードしたTODO5 -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="1"; filename="todolist2.txt" Content-Type: text/plain todolist2.txtからアップロードしたTODO1 todolist2.txtからアップロードしたTODO2 -----------------------------1395431092341454357747073315--
41.
multipart/form-data -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="0";
filename="todolist1.txt" Content-Type: text/plain todolist1.txtからアップロードしたTODO1 〜略〜 todolist1.txtからアップロードしたTODO5 -----------------------------1395431092341454357747073315 Content-Disposition: form-data; name="1"; filename="todolist2.txt" Content-Type: text/plain todolist2.txtからアップロードしたTODO1 todolist2.txtからアップロードしたTODO2 -----------------------------1395431092341454357747073315-- •Content-Length: 779 →全体サイズは779バイト •各パート毎のヘッダの情報 •その後には空行がある という情報をもとにファイルを取り出す!
42.
という面倒なところはPHP とCakePHPがやってくれ ます! →テンポラリファイルを作 るまではやってくれる!
43.
•Ajaxでファイルアップロード処 理を行う •PHPが作ってくれたテンポラリ ファイルを読み込む • 取り出したファイルのデータか らTODOを作成する やること
44.
ワークショップ
45.
画面はこう
46.
本日のメニュー 1. 事前準備 2. Lesson1
ダウンロード 3. Lesson2 アップロード
47.
事前準備 • gitのブランチを整える • 前回、前々回不参加の方は テーブル追加、列追加する
48.
gitのブランチを整える ■masterブランチを前回の内容 を終えた状態にする ■masterブランチを元に、今回 の作業用である、 「vol/09」ブランチを作成する
49.
人によって手順が違い ます!(重要) ■前回の内容を途中までやった方 ■前回の内容を完了した方 ■今回から参加の方 gitのブランチを整える
50.
http:// goo.gl/WEHXqX ジーオーオー.ジーエル/ ダブリューイーエイチエックスキューエックス ここに詳しく 書いております!
51.
今回のマニュアルにリンクがあります。 ※後ほど説明 第5回と第6回に不参加の方は テーブル追加、列追加をする
52.
各Lessonについては Qiitaの投稿で詳しく!
53.
ポイントだけ少し! コード見ながら解説します
54.
マニュアル(Qiita) http:// goo.gl/hXBzVR ジーオーオー.ジーエル/ エイチエックスビーゼットブイアール
55.
マニュアル(Qiita) http:// goo.gl/hXBzVR ジーオーオー.ジーエル/ エイチエックスビーゼットブイアール はじめましょう!
56.
ファイル選択をもっ とリッチに! 🍻飲みDev🍕 テーマ Drag &
Dropで!
57.
ファイル選択をもっ とリッチに! 🍻飲みDev🍕 テーマ Drag &
Dropで!
Download