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 7
Search
Abhinav Sharma
January 09, 2014
Education
0
45
How the Web Works: Lecture 7
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
47
How the Web Works: Lecture 8
abhinavsharma
0
110
How the Web Works: Lecture 9
abhinavsharma
0
63
How the Web Works: Lecture 3
abhinavsharma
0
35
How the Web Works: Lecture 2
abhinavsharma
1
46
How the Web Works: Lecture 1
abhinavsharma
2
120
Other Decks in Education
See All in Education
生成AI
takenawa
0
13k
『会社を知ってもらう』から『安心して活躍してもらう』までの プロセスとフロー
sasakendayo
0
250
Alumnote inc. Company Deck
yukinumata
0
1.3k
理想の英語力に一直線!最高効率な英語学習のすゝめ
logica0419
6
350
OJTに夢を見すぎていませんか? ロールプレイ研修の試行錯誤/tryanderror-in-roleplaying-training
takipone
1
210
IUM-03-Short Series of Functions
kanaya
0
120
中間活動報告会 人材育成WG・技術サブWG / 20250808-oidfj-eduWG-techSWG
oidfj
0
310
2025年度春学期 統計学 第7回 データの関係を知る(2)ー回帰と決定係数 (2025. 5. 22)
akiraasano
PRO
0
150
核燃料政策を問う─英国の決断と日本
hide2kano
0
130
万博マニアックマップを支えるオープンデータとその裏側
barsaka2
0
720
(キラキラ)人事教育担当のつらみ~教育担当として知っておくポイント~
masakiokuda
0
130
Course Review - Lecture 12 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
1.8k
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
GitHub's CSS Performance
jonrohan
1031
460k
Become a Pro
speakerdeck
PRO
29
5.5k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
Gamification - CAS2011
davidbonilla
81
5.4k
GraphQLとの向き合い方2022年版
quramy
49
14k
Thoughts on Productivity
jonyablonski
69
4.8k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Scaling GitHub
holman
462
140k
Facilitating Awesome Meetings
lara
55
6.5k
Docker and Python
trallard
45
3.5k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Transcript
None
http://www.youtube.com/watch?v=qYodWEKCuGg
Welcome Back!
Logistics Homeworks + Remaining Course
Homeworks Bad News =( The Project Idea Failed Minis are
now Homeworks Still cover everything Just no project experience However...
Lecture 7 Webmasters’ World Putting it all together
None
Domains Popular: .com .net .org Reserved: .gov .edu .mil National:
.us .in .cn .ru Cost around $10 a year Controlled by ICANN Internet Real Estate
Insure.com $16 million Sex.com $14 million Fund.com $10 million Porn.com
$9.5 million Business.com $7.5 million These are just the names, not the existing business
Domain Squatting Money for early movers! Registering trademarks is illegal
Parking Pages Aftermarkets (TDNAM.com) But in my experience...
Parking Sedo.com Namedrive.com
More Recently... Google knows to ignore them Smarter parked websites
Content Management Systems Social Networking Site Forum, Wiki, etc..
Forums for Domainers Namepros.com Dnforum.com
Where to Buy? DomainSite.com | GoDaddy.com | Name.com | Others...
Web Hosting
Where do I go?
Self Managed Managed Complete Control Comes with PHP/SQL/... “Lower” Costs
Monthly Cost Upgrade, Backup Auto Upgrade/Backup Enterprises You and Me
Free Paid Costs Nothing Around $100/yr Low Storage (~1GB) High
Storage (~1TB) Low Bandwidth High Bandwidth Good for starting off If you have a bunch of sites x10hosting.com, etc... dreamhost.com, etc...
Where to Buy? GoDaddy.com | Dreamhost.com | etc...
DNS Essentials NS: Name Server Where the domain is hosted
MX: Mail Exchange Server that handles email CNAME: Canonical Name foo.me.com -> bar.me.com Mostly use NS, controls rest
Quick Demo Propagates across the web, can take hours!
www.cmuwebworks.com/movies/domain_hosting.mov
Useful Tools ... and I mean really, really useful!
FTP File Transfer Protocol Move files to/from server Windows/Linux: FileZilla
Mac: Cyberduck
SSH Secure Shell Control Server from Home Remember from C@CM?
Awesome for Batch Tasks Learn about Shell Scripts
Crontab Run shell scripts periodically 1. Create a cron.txt file
2. Upload cron.txt 3. Set file: “crontab cron.txt” Format for cron.txt
min hour month day weekday cmd 30 23 * *
* php script.php 30 23 * * 0 php script.php * 1,2 * * * php script.php 30 23 * * 1-5 php script.php http://adminschoice.com/crontab-quick-reference
Quick Demo Setting Up a Cron Job
www.cmuwebworks.com/movies/crontab.mov
MOD Rewrite Not your grandma’s URLs
Typically, URLs match directory structure
mod_rewrite Is a module in the Apache server That manipulates
URLs Uses rules (regex) to manipulate URLs www.website.com/get/cake actually www.website.com/g.php?v=cake ... super useful with dynamic pages! Search Engine Friendly URLs .htaccess file | Demo
None
Demo http://www.cmuwebworks.com/show.php?val=123 to http://www.cmuwebworks.com/show/123
www.cmuwebworks.com/movies/mod_rewrite.mov
MVC Model-View-Controller Pattern
It works, but what’s wrong?
Functionality CS Major Styling Designer Templating The Unlucky Guy One
File!
Scale to Survive | Need Efficient Design Patterns How we
did it MVC
GET index.php
GET Controller Return Model Fetch Data View Put Data in
Template
Return I still get the exact same thing, awesome!
Implementation Rails for Ruby, Django for Python CakePHP, CodeIgniter for
PHP controllers/ models/ views/ Controllers: PHP file, does work Models: Classes fetch Data (SQL) Views: Render Data from Controller
CodeIgniter’s a popular PHP based MVC framework http://www.codeigniter.com/videos/intro.mov
None
None
http://codeigniter.com/wiki/mod_rewrite/
One More Thing Managing Data
Year Leader Minion 2008 Obama Biden 1944 Roosevelt Truman 1940
Roosevelt Wallace Person Age Truman 50 Wallace 60 Obama 70 getOlderMinion($lead) class Race { getPresidents(); getPrez($year); // ... }
Year Leader Minion 2008 Obama Biden 1944 Roosevelt Truman 1940
Roosevelt Wallace class Race_Model { }
class Race_Model { $year = 0 $leader = ‘’ $minion
= ‘’ function getLeaderByYear($year) { // get leader from mysql } // other functions } http://codeigniter.com/user_guide/general/models.html
CMS Content Management Systems
CMS Readymade Scripts in PHP/SQL East to install and run,
free! Blogs, Wikis, Forums, Store, etc... Blog: Wordpress, Typepad General: Drupal, Joomla Others, MediaWiki, Zen Cart
OpenSourceCMS.com
Analytics Keeping Track of Users
One Stop Shop
Analytics Daily Visits Bounce Rate (Who Stays) Location Search Engine
Terms Really really stalkerish! 0 25 50 75 100 2007 2008 2009 2010
Add some JS Code to all pages http://www.youtube.com/watch?v=HGK7LJGfC2w
SEO Search Engine Optimization
Some Basics Before we get into the interesting stuff
<title>
None
<meta name=”description”> Facebook is a ... </meta>
None
Have Keywords | Two Audiences | Be Specific Title URL
Description www.google.com/trends
Sitelinks Google Decides | Simple URL Structure | Descriptive Anchors
Use the Right Tags <h1> <h2> | Use <h1> for
main heading, <h2> under, ... CSS Makes them redundant, but search engines care
Anchor Text Name of link to site matters! <a href=”me.com”>awesome</a>
<a href=”me.com”>terrible</a> Becomes keyword for me.com Wikipedia linked as reference, thus does well on Google!
Image Alt Text Never Leave Empty Be Descriptive “Google” vs.
“Google Postini” Helps with image search
URLs ... can get really tricky!
URLs Matter Heavily Keywords Come from URLs Have Relevant URL
Names Not too long Separators / - _ Wikipedia URLs are Great!
Canonical URLs www.google.com/voice www.google.com/voice/ www.me.com me.com ... are different! Decide
one, redirect! ... or they’ll compete, both lose! Use HTTP 301
None
http://blog.mywebsite.com vs. http://mywebsite.com/blog
Subdomains? Rank shared with directories Before: Subdomains another website Today:
Not the same as subdir, but closer Kinda “Share” Rank with rest of site Pros and Cons http://www.mattcutts.com/blog/subdomains-and-subdirectories/
None
None
None
PageRank Ranks pages on the web Uses links as votes
More incoming links =) Google’s Bread and Butter Matrix Algebra, Graph Theory
PageRank Simplified A B C D Nodes = Websites |
Edges = Links
The Web A B C D Initially, set PR(A) =
PR(B) = PR(C) = PR(D) = 1/4 | PR = PageRank
The Web A B C D Pagerank ~ # In
Links PR(A) = PR(C) + PR(D) = 0.25 + 0.25 = 0.50 Similarly PR(B) = 0.50 PR(C) = 0.25 PR(D) = 0.25
Dilution If I vote for everyone, my vote isn’t important!
The Web A B C D Divide by # Outgoing
PR(A) = PR(C)/2 + PR(D)/1 = 0.125 + 0.25 = 0.375 Similarly PR(B) = 0.25 PR(C) = 0.125 PR(D) = 0.25
Iterate Repeat Using new Pageranks, until changes are little
A B C D
No Follow <a href=”site.com” rel=”nofollow”>Site</a> Might link to potentially bad
site Refuse to give it your Pagerank Useful for sites like Digg.com If you’re Dugg, PR stays the same
Remember This is ranking for a keyword Iterates to convergence
PR ~ # In Links & In Quality Quality ~ 1/Out Links Keywords matter, a lot!
Google Bombs ... circa 2006
Large-Scale Distributed Efforts
But not always evil...
Link Farms Lets Analyze These
Link Farms ~ Cliques
Web Grows Quicker than Cliques
Cliques Become Less Relevant | Dilution in PageRank
Link Doping Blogrolls | More Efficient | Less Dilution
Week 8 Week 9
Homework Dead easy, awesome! Can pass with just this HW
“andrewID is a zeliveau” Points = Pagerank Pagerank = [0, 10] Compete! See “rankmaniac” Zeliveau
Photo Credits http://www.interactivecleveland.com/blog/uploaded_images/pagerank10-743814.gif http://www.scienceoftheweb.org/15-396/lectures/PageRank_Lecture12.pdf http://www.amitbhawani.com/blog/Images/W/Web-Hosting-Server-Room.jpg http://www.iconarchive.com/icons/awicons/vista-artistic/256/2-Hot-Home-icon.png http://www.rice.edu/vpit/innovation/presspix/rice_data_center06052007x300.jpg http://www.scienceoftheweb.org/15-396/lectures/PageRank_Lecture12.pdf http://xkcd.com/208/ http://www.riesbeckfoods.com/images/2BakeryCollage.jpg
http://hookedonhouses.net/wp-content/uploads/2009/06/shop-around-the-corner-ext.jpg http://ceoworld.biz/ceo/wp-content/uploads/2009/10/barnes_and_noble.jpg
None