Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How the Web Works: Lecture 8
Search
Abhinav Sharma
January 09, 2014
Education
0
110
How the Web Works: Lecture 8
This talk was designed for a class (98-135) taught at Carnegie Mellon University in Spring 2010.
Abhinav Sharma
January 09, 2014
Tweet
Share
More Decks by Abhinav Sharma
See All by Abhinav Sharma
How the Web Works: Lecture 5
abhinavsharma
1
73
How the Web Works: Lecture 6
abhinavsharma
0
48
How the Web Works: Lecture 7
abhinavsharma
0
45
How the Web Works: Lecture 9
abhinavsharma
0
64
How the Web Works: Lecture 3
abhinavsharma
0
38
How the Web Works: Lecture 2
abhinavsharma
1
48
How the Web Works: Lecture 1
abhinavsharma
2
120
Other Decks in Education
See All in Education
Web Application Frameworks - Lecture 3 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
The browser strikes back
jonoalderson
0
300
Node-REDで広がるプログラミング教育の可能性
ueponx
1
240
核軍備撤廃に向けた次の大きな一歩─核兵器を先には使わないと核保有国が約束すること
hide2kano
0
210
アジャイルの知見から新卒研修作り、そして組織作り
pokotyamu
0
140
学習指導要領と解説に基づく学習内容の構造化の試み / Course of study Commentary LOD JAET 2025
masao
0
110
1008
cbtlibrary
0
130
Web Architectures - Lecture 2 - Web Technologies (1019888BNR)
signer
PRO
0
3.3k
都市の形成要因と 「都市の余白」のあり方
sakamon
0
120
the difficulty into words
ukky86
0
340
Library Prefects 2025-2026
cbtlibrary
0
180
Google Gemini (Gem) の育成方法
mickey_kubo
2
1.1k
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.7k
Code Review Best Practice
trishagee
74
19k
Believing is Seeing
oripsolob
1
29
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Amusing Abliteration
ianozsvald
0
86
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Tell your own story through comics
letsgokoyo
1
780
Marketing to machines
jonoalderson
1
4.5k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
270
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
600
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
39
What's in a price? How to price your products and services
michaelherold
246
13k
Transcript
None
Lecture 8 Building Social Apps
None
XML
XML HTML Generalized Format for structured data XML <=> DOM
Tree .xml Files XML Parsers out there... JSON : HashTable :: XML : Tree
<courses> <course> <id> <name> <desc> <prof> <course> <id> <name> <desc>
<prof>
Finally, we don’t need to talk pretty to the humans!
Yeah, screw NLP!
Haha, noobs!
None
API
APIs Application Programming Inteface Library of Functions ... for some
langauge Common Theme ex. Java Sound API
Facebook knows so much about my users. If only... We’ll
share it, after all, people will think we’re awesome!
Sweet! I code in PHP, Ruby, Python, Java, C, and
Brainf*ck STFU
Sweet! I code in PHP, Ruby, Python, Java, C, and
Brainf*ck Ok, we’ll give you a standard format.
API = HTTP + XML Returning Data (beyond HTML) Making
requests (beyond GET & POST)
REST made with love HTTP
REST Representational State Transfer Its not that fancy. Standard for
Communication Uses HTTP in depth With XML or JSON myhost.com/...
Public APIs
My
Videos Users leavebritneyalone Chris Crocker starwarskid Darth Vader icanhazcheezburger The
Cat icanhazmuffins The Cat
GET www.google.com 200 OK
GET www.google.com Hello, World!
Request GET POST Response 200 OK 404 Not Found 500
Internal Server Error ....
GET POST PUT DELETE
GET api.mytube.com 200 OK
GET api.mytube.com starwarskid leavebritneyalone ...
GET api.mytube.com/ starwarskid starwarskid.mp4
DELETE api.mytube.com/ starwarskid 200 OK
DELETE api.mytube.com/ terminator2 404 Not Found
RESTful Resource GET POST PUT DELETE api.mytube.com api.mytube.com/ vid_id List
Members Replace Collection Create New Item Delete Collection Retrieve Data Update Item Member is Collection Delete Item
REST APIs
Parse Response XML using PHP http://php.net/manual/en/book.xml.php Request Service using GET/POST/PUT/DELETE
http://us.php.net/manual/en/book.curl.php
I use PHP to respond to requests!
None
Hands-On http://phprestsql.sourceforge.net/ http://phprestsql.sourceforge.net/download.html
None
Wrappers aka Client Libraries
Wrappers import mytube.py mt = new MyTube(auth) mt.getVideos() mt.setVideo(vid, new.mp4)
My
Facebook API
Facebook Apps Is like a website Inside of Facebook Access
to Facebook Data friends, networks, about... Users “add” applications Not your domain name
Canvas URL apps.facebook.com/... Callback URL myhost.com/...
Let See One http://apps.facebook.com/iplcricket/
Lets Build One www.cmuwebworks.com/movies/facebook_app.mov
Hello++
myhost.com/... <fb:friends> <ol> <li>Friend1</li> <li>Friend2</li> <li>Friend3</li> </ol>
FBML Is an extension of SQL With special <fb:> tags
Invalid as HTML Facebook reparses Canvas-Callback Model myhost.com/...
JS & FQL Facebook restricts JS Called FBJS FQL is
SQL-like way to access data on Facebook More general than friends->get() myhost.com/...
Facebook Connect Your Website + Facebook Authentication Feed Social Graph
Implementation Details Later
http://wiki.developers.facebook.com
Other APIs
None
YouTube API Data API: Finds the right video Data API
is REST Based Player API: Customizable Player Player API is Flash Based
Data API Google Data API HTTP Request HTTP + XML
Response Similar to REST Java, PHP, Python, ObjC, Javascript Libraries http://code.google.com/apis/gdata/
Data API Search for Videos Standard Streams (Most Popular) Upload,
Update, Delete Videos
Player API Data API: Finds Video Player : Plays Video
Flash Player (.swf file) With Parameters player colors, loop video, etc....
http://code.google.com/apis/youtube/
None
Twitter API Two APIs (Oh Noes!) Historical Reasons REST API,
Search API Completely Open
Twitter API REST API Search API User information, social data,
etc... Search by tags, trends, etc...
http://apiwiki.twitter.com
Here’s What Matters Everyone has APIs Too many to discuss
here Usually REST Based PHP libraries common Find the service, read docs
One Last Thing http://code.google.com/p/schedulematch/ http://apps.facebook.com/cmuschedule/
Please Help
Photo Credits http://lolmartshirts.com/wp-content/uploads/2010/01/omgwtfbbq1.jpg http://www.johnberns.com/wp-content/uploads/2009/06/01-raw-xml-in-vim-no-whitespace.png http://www.flickr.com/photos/29063159@N07/2714200496/sizes/o/ http://www.xkcd.com/715/
None