SlideShare une entreprise Scribd logo
1  sur  38
WWW Intro

Ensky / 林宏昱
Client – Server




1.商店開著等顧客進來
2.顧客隨時想來就來
3.越大的店可以容納越多的顧客
Client – Server




•   我們的網路世界也是一樣
•   有一些商店(Server)
•   使用者是顧客(Client)
•   我想上某個網站的時候就連過去,
    Server永遠開著
Hostname and IP
• IP is an Unique identifier
  – 就像身分証一樣
• 網路有自己的機制,可以讓你輸入IP就找到
  那台機器。
• http://140.113.41.8
  – 但這不make sense
• http://www.nctu.edu.tw
  – It’s great!
Uniform Resource Identifier
http://comic.ensky.tw/register
ftp://ca.nctu.edu.tw

Protocol (like FTP, HTTP, Telnet…)
Host( Domain Name / IP )
Path
URI = Protocol :// Host + Path
Uniform Resource Identifier
• 絕對連結
• 所有網路資源都可以用一個絕對連結來代
  表。

• ftp://ca.nctu.edu.tw
• telnet://bs2.to
• ssh://bsd6.cs.nctu.edu.tw
Links
• In http://ensky.tw/test/test1/index.html

•   A.txt -> http://ensky.tw/test/test1/A.txt
•   ../A.txt -> http://ensky.tw/test/A.txt
•   ../b/A.txt -> http://ensky.tw/test/b/A.txt
•   ../../b/A.txt -> http://ensky.tw/b/A.txt
•   /A.txt -> http://ensky.tw/A.txt
HTTP Basic(餐廳)




• 1.說中文
• 2.清楚描述我要吃啥

• 這就是協定(protocol) : 我和店家的協定
HTTP Request
   我要
   /index.php




    好喔,給你
HTTP Request Overview
• http://comic.ensky.tw/register

1. 連到140.113.27.33:80
   //就是comic.ensky.tw這個hostname轉換成的IP
2. 丟下面的文字
GET /register HTTP/1.1
Host: comic.ensky.tw
...
HTTP Request Method
GET /register HTTP/1.1
Host: comic.ensky.tw
OR
GET http://comic.ensky.tw/register HTTP/1.1

Method URI Protocol_version
Key: value
HTTP Request Method
• GET http://comic.ensky.tw/register HTTP/1.1
• GET
  – Read, 讀取資料
• POST
  – Create, 新增資料
• PUT
  – Update, 修改資料
• DELETE
  – Delete, 刪除資料
HTTP Request Feature
Host: comic.ensky.tw
Cookie: xx=yy; aa=bb; …
Referer: http://comic.ensky.tw/
User-Agent: Mozilla/5.0 (Windows NT 6.1;
WOW64) AppleWebKit/537.1 (KHTML, like
Gecko) Chrome/21.0.1180.60 Safari/537.1
HTTP Response
    我要
    index.php




    好喔,給你
HTTP Response Overview
HTTP/1.1 200 OK
Set-Cookie: a=b; c=d; …
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip

文件內容(html)

Protocol Code Response_text
Key: value
Take a Break
HTML
HTML
• HTML規範了有什麼東西要被顯示在網頁上
• 是一個Markup Language

<段落>
   這是一篇文章
</段落>
<圖片 網址=“http://this.is.a.pic/pic.jpg”>
HTML
<標籤名稱 屬性1=“值” 屬性2=“值2”>
   子元素
</標籤名稱>

<p>
       這是一個真的段落
</p>
HTML呈現的是「文件」
      嚴格來說,
HTML不算是一種「程式語言」
HTML Tags
<!doctype html>
<html>
  <head>
     <meta charset=“utf-8”>
     <title>這是網頁的標題</title>
  </head>
  <body>
     <p>這是一個段落文字</p>
  </body>
</html>
HTML Tags
• <head>
  裡面放的是「關於這個網頁的資訊」
  – 編碼
  – 網頁標題
• <body>
  放的是「這個網頁的內容」
  也就是所有顯示出來的東西
HTML Tags
• 其他Tag請自己看

• 請務必要搞懂最基本的那些tags

• 比方說a, img, table, form, textarea, select, br,
  p, div, span, pre, style, link, script, …
HTML Attributes
每個元素會有不同的屬性可以設定
<img width=“123” height=“456” src=“…”>
以下四個屬性是每個元素都有的

•   class   -     元素的類別
•   id      -     元素的唯一名稱
•   style   -     元素的樣式
•   title   -     元素的標題文字
HTML Entities
還記得C語言中,你為什麼不能宣告
int for = 1;嗎?

因為for是C語言中的保留字
同樣的,HTML中也有所謂的「保留字」
比如說「<」這個符號就是
HTML Entities
還記得這行是什麼意思嗎?
<body>
     <p>這是一個段落文字</p>
</body>


仔細看之後你會發現,在<p>之前有好多空白
(或者是tab)
但網頁上卻不會真的顯示出那些空白
HTML Entities
那如果我要打「<」或者是空白,怎麼辦?
常見的保留字:
         &nbsp;

<        &lt;

>        &gt;

&        &amp;

©        &copy;

         &reg;
®
™        &trade;
Encodings
很久很久以前,老美發明了電腦
那時的電腦還沒有網路

老美自己當然只用ABCDEFG
所以他們發明了ASCII code的表示方法
Encodings
但是用中文的我們可不能只用ASCII
去表示中華博大精深的文字
1個byte完全就是不夠用阿

所以我們自己創了Big5這套編碼方式
用兩個byte來表示中文
Encodings
那時候網路可還沒有普及呢
大家用big5用爽爽,反正只有我們會用
所以沒差

但網路一普及就崩潰了阿
每個國家都有一套自己的編碼方法
我們有big5中國有GB2312日本有JIS
Encodings
於是有人就提出一套編碼完全攻略
叫做unicode
用4個bytes把全部的字都塞進去

於是普天同慶
全世界的電腦都可以正確顯示中文網站
了!
Encodings
而UTF-8是Unicode的一種實作方法
詳細資訊請參考wiki,在此不多做說明

於是乎,我們寫網頁的都要記得
你寫好的網頁要存成UTF-8
HTML裡面也要註明編碼是UTF-8
不然瀏覽器會搞錯
Encodings
• Nodepad++中編成UTF-8的方法




• 記事本中編成UTF-8的方法
URL Encoding
網址有一套規範,叫做RFC 1738
裡面規定URL只能是ASCII的某些文字組成
因此若是你想在HTTP Request中使用中文
(比如說你想做一個抓漫畫機器人之類的)
需要作URL Encoding

google:URL Encoding
Homework

• 搞懂HTML基本元素的用途、實際操作看看
  ref: http://goo.gl/QVoic
• 搞懂這份投影片介紹過的東西
  ref: http://www.google.com.tw

• 練習1:自我介紹

Contenu connexe

En vedette

2014 database - course 1 - www introduction
2014 database - course 1 - www introduction2014 database - course 1 - www introduction
2014 database - course 1 - www introductionHung-yu Lin
 
Google App Engine
Google App EngineGoogle App Engine
Google App EngineHung-yu Lin
 
2014 database - course 2 - php
2014 database - course 2 - php2014 database - course 2 - php
2014 database - course 2 - phpHung-yu Lin
 
OpenWebSchool - 11 - CodeIgniter
OpenWebSchool - 11 - CodeIgniterOpenWebSchool - 11 - CodeIgniter
OpenWebSchool - 11 - CodeIgniterHung-yu Lin
 
2014 database - course 3 - PHP and MySQL
2014 database - course 3 - PHP and MySQL2014 database - course 3 - PHP and MySQL
2014 database - course 3 - PHP and MySQLHung-yu Lin
 

En vedette (6)

2014 database - course 1 - www introduction
2014 database - course 1 - www introduction2014 database - course 1 - www introduction
2014 database - course 1 - www introduction
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
2014 database - course 2 - php
2014 database - course 2 - php2014 database - course 2 - php
2014 database - course 2 - php
 
Redis
RedisRedis
Redis
 
OpenWebSchool - 11 - CodeIgniter
OpenWebSchool - 11 - CodeIgniterOpenWebSchool - 11 - CodeIgniter
OpenWebSchool - 11 - CodeIgniter
 
2014 database - course 3 - PHP and MySQL
2014 database - course 3 - PHP and MySQL2014 database - course 3 - PHP and MySQL
2014 database - course 3 - PHP and MySQL
 

Similaire à OpenWebSchool - 01 - WWW Intro

[2008]网站重构 -who am i
[2008]网站重构 -who am i[2008]网站重构 -who am i
[2008]网站重构 -who am iTwinsen Liang
 
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Justin Lin
 
Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)ziggear
 
JavaScript 80+ Programming and Optimization Skills
JavaScript 80+ Programming and Optimization SkillsJavaScript 80+ Programming and Optimization Skills
JavaScript 80+ Programming and Optimization SkillsHo Kim
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5 Tony Deng
 
OpenWebSchool - 02 - PHP Part I
OpenWebSchool - 02 - PHP Part IOpenWebSchool - 02 - PHP Part I
OpenWebSchool - 02 - PHP Part IHung-yu Lin
 
WEB 安全基础
WEB 安全基础WEB 安全基础
WEB 安全基础xki
 
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网构建可维护的Javascript 小米网
构建可维护的Javascript 小米网yang alex
 
Ch01 簡介Web應用程式
Ch01 簡介Web應用程式Ch01 簡介Web應用程式
Ch01 簡介Web應用程式Justin Lin
 
《网页设计与制作》第一章:网页制作基础
《网页设计与制作》第一章:网页制作基础《网页设计与制作》第一章:网页制作基础
《网页设计与制作》第一章:网页制作基础greentask
 
给聚划算后端开发的前端培训
给聚划算后端开发的前端培训给聚划算后端开发的前端培训
给聚划算后端开发的前端培训j5726
 
模块一-Go语言特性.pdf
模块一-Go语言特性.pdf模块一-Go语言特性.pdf
模块一-Go语言特性.pdfczzz1
 
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsChieh Lin
 
COSCUP 2010 - node.JS 於互動式網站之應用
COSCUP 2010 - node.JS 於互動式網站之應用COSCUP 2010 - node.JS 於互動式網站之應用
COSCUP 2010 - node.JS 於互動式網站之應用ericpi Bi
 
Real time web实时信息流推送
Real time web实时信息流推送Real time web实时信息流推送
Real time web实时信息流推送yongboy
 
Real-Time Web实时信息流推送
Real-Time Web实时信息流推送Real-Time Web实时信息流推送
Real-Time Web实时信息流推送yongboy
 
运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践Li JianYe
 
⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨Wen-Tien Chang
 

Similaire à OpenWebSchool - 01 - WWW Intro (20)

[2008]网站重构 -who am i
[2008]网站重构 -who am i[2008]网站重构 -who am i
[2008]网站重构 -who am i
 
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
 
Html5
Html5Html5
Html5
 
Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)
 
JavaScript 80+ Programming and Optimization Skills
JavaScript 80+ Programming and Optimization SkillsJavaScript 80+ Programming and Optimization Skills
JavaScript 80+ Programming and Optimization Skills
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5
 
OpenWebSchool - 02 - PHP Part I
OpenWebSchool - 02 - PHP Part IOpenWebSchool - 02 - PHP Part I
OpenWebSchool - 02 - PHP Part I
 
WEB 安全基础
WEB 安全基础WEB 安全基础
WEB 安全基础
 
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
 
Ch01 簡介Web應用程式
Ch01 簡介Web應用程式Ch01 簡介Web應用程式
Ch01 簡介Web應用程式
 
HTML 語法教學
HTML 語法教學HTML 語法教學
HTML 語法教學
 
《网页设计与制作》第一章:网页制作基础
《网页设计与制作》第一章:网页制作基础《网页设计与制作》第一章:网页制作基础
《网页设计与制作》第一章:网页制作基础
 
给聚划算后端开发的前端培训
给聚划算后端开发的前端培训给聚划算后端开发的前端培训
给聚划算后端开发的前端培训
 
模块一-Go语言特性.pdf
模块一-Go语言特性.pdf模块一-Go语言特性.pdf
模块一-Go语言特性.pdf
 
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development Fundamentals
 
COSCUP 2010 - node.JS 於互動式網站之應用
COSCUP 2010 - node.JS 於互動式網站之應用COSCUP 2010 - node.JS 於互動式網站之應用
COSCUP 2010 - node.JS 於互動式網站之應用
 
Real time web实时信息流推送
Real time web实时信息流推送Real time web实时信息流推送
Real time web实时信息流推送
 
Real-Time Web实时信息流推送
Real-Time Web实时信息流推送Real-Time Web实时信息流推送
Real-Time Web实时信息流推送
 
运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践
 
⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨
 

OpenWebSchool - 01 - WWW Intro