Application Web

WWW(world wide web)歷史
1945,hypertext(超鏈結文件),MIT的vannevar bush發明
1989,CERN(歐洲核子研究重鎮)物理學家tim berners-lee 3月提出,1991.12展示
1993,2marc andreessen發表瀏覽器mosaic,並成立netscape communication
1994,CERN和MIT成立全球資訊網聯盟world wide web consortium(www.w3.org)
1998,netscape被ammerica online買下

http(hypertext transfer protocol,超文件傳輸協定)
www採用的協定,由rfc2616規範
http送出的要求是ascii文字編輯而成的,並提供四個基本功能(GET,HEAD,POST,PUT)
http1.0,連完就釋放
http1.1,支援persistent connection(永久性連結),可連續傳送多要求
https,安全的http傳輸功能
http-ng:下一代版本,使用二進位來對表頭做編碼而不用現存的ascii模式
Helper Application:瀏覽器端的輔助程式

HTTP method
操作指定資源的8個動作
OPTIONS:要求web傳回該資源所支援的所有HTTP請求方法,常用來測試web功能是否正常運作
HEAD:向web要求特定資源的head(存放資源的資訊)
GET:向web要求特定資源
POST:將資料送到web,常用在送出表單或者上傳檔案
PUT:上傳更新內容到web
DELETE:要求web刪除Request-URI所標識的資源
TRACE:回覆web收到的請求,主要用於測試
CONNECT:HTTP/1.1預留給管道方式的Proxy,常用於SSL

web status code(狀態碼)
1xx資訊,100同意處理用戶端要求
2xx成功,200要求成功,204無內容存在
3xx重導,301網頁移動,304快取網頁有效
4xx用戶端錯誤,403禁止存取,404網頁找不到
5xx伺服端錯誤,500伺服器內部錯誤,503稍後在試
refer
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html  

HTTP1.1 persistent connection/HTTP1.0 keep-alive/HTTP connection reuse
重複使用TCP connections,以降低new connection建立和關閉而造成delay的一種技術
無此模式时(一般的request/response模式),clinet對server的每個request/response都要新建一个conection,
完成後會中斷connection(http procotol為Stateless protocol,代表client和server之間不會記得先前的狀態)  
ps:
http 1.0無此功能,但使用HTTP/1.0+(HTTP 1.0之後的擴充),
可在header中啟用Connection:Keep-Alive的方法支援此功能.
http 1.1將1.0的Keep-Alive定義為persistent connection.
ps:
直到2015年,多數browser預設使用http1.1 persistent connection,
不過每個browser對web有不同的persistent connection數量限制.
client和server端都要同時使用此功能才會有作用,
而server不一定會啟用keep alive功能,ex:apache部份版本預設將此功能關閉.
refer
https://www.byvoid.com/blog/http-keep-alive-header


HTTP 1.1的Pipelined Connections
在一個tcp connection中同步發送多個HTTP requests的技術,在high-latency的網路環境中可改善效能.
refer
http 1.1 pipeline失敗的原因
http://fcamel-life.blogspot.tw/2015/08/http-11-pipeline.html

… 

web效能增加
方法有:
1常用檔放記憶體做快取,便可直接從記憶体取出,避免存取磁碟
2伺服器以multithreaded(多緒程)運作,負責傳入要求的前端模組+一群processing module(處理模組)
3伺服器以multithreaded(多緒程)運作,無前端,每個處理模組試圖取得自己要求,須用locking protocol(鎖定協定)
4使用多處理模組+多磁碟同時運作,但程式和管理複雜
5伺服器群模式(負載平衡技術),增加更多節點,搭配replicated disk(複製磁碟),每個節點也可用多重緒程
 問題:無共享cache,需用tcp交遞(tcp handoff)將tcp終點交給節點以便直接回覆client

web收到用戶端要求的處理順序
1解析要求的名稱
2認證(用戶端)
3存取控制(用戶端)
4存取控制(網頁)
5檢查cache
6從disk取資料
7判斷MIME型態以加入回覆中
8處理雜務
9回覆
10伺服器紀錄log

 

URL(uniform resource locator,全球資源定位器)
用來確定是那個資源,並表示出位置
格式為:協定(方法)+dns名稱(+:port,ex”:80″)(+”/網頁名稱”)
http://  web網頁
ftp://  檔案傳輸
file:// 本地檔案
telnet:// 遠端登入
gopher://用於gopher(只支援文字的搜尋機制)
news: 新聞群組 ex:news:comp.os.minix
news. 新聞文章 ex:123@cs.utah.edu
mailto: 送郵件 ex:mailto:atcg@pie.com.tw

cookie
由netscape設計,定義在RFC2109
某些網站為了辨別用戶身份而儲存在用戶本地終端上的數據
主要儲存以下資料:
 網域:表cookie來自何處
 路徑:表那個目錄可以使用cookie
 內容:name=value格式
 逾期:空白則不紀錄稱非永久性cookie,若無空白則保存到逾時為止
 安全性:只可回給安全伺服器

……………………………………………

SGML(Standard Generalized Markup Language,標準通用標示語言)
 html前身
HTML(hyptertext markup language,超文件標記語言)
 以iso 8859-1 latin-1字元集寫成
 特殊字元皆以&開頭分號結尾
 不提供任何網頁結構
XML(extensible markup language,延伸標記語言)
 以一種結構化方式描述網頁內容
 是一套原則,可讓各行各業自行定義如 HTML 般的標注語,方便資料存取、處理、交換,轉換等
 未來可直接在資料庫中就存入XML文件
WML(Wireless Makeup language,無線注標語言)
 支援WAP技術的手機能瀏覽由WML描述的Internet內容
 WML是以XML為基礎的標記語言,用在規範窄頻設備,如手機、呼叫器等如何顯示內容和使用者介面的語言
XSL(extensible style language,延伸格式語言)
 以獨立於內容的方式定義格式
XHTML(extensible hypertext markup language,延伸超文件標記語言)
 html4以xml重新改造
 新的web標準,應用於新式網頁,以得到跨平台及瀏覽器的最大可攜性

DHTML(伺服器動態網頁產生機制)
無法做到與滑屬和使用者直接互動
CGI(common gateway interface,共同閘道界面),後端通常以perl描述語言或python寫,並放在cgi-bin目錄下
PHP hypertext preprocessor(超文件前處理器)
JSP(javaserver pages,java伺服器頁面)
  Servlet:用Java語言來開發網路應用程式的一種技術
  JDBC,Java Database Connectivity:與SQL資料庫系統互動的API
ASP(active server pages,主動式伺服器頁面),採微軟專屬的描述語言visual basic script來產生動態內容

用戶端動態網頁產生機制
javascript描述語言,具c或java的完整功能,容易撰寫
applet,被jvm的虛擬電腦編譯成機器指令的小型java程式,可攜性高
activeX control,編譯成pentium機器語言的程式,並完全在硬體上執行,速度最快

……………………………………………

WAP(wireless application protocol,無線應用協定)
1.0資料速率9600bps,專門針對利用cpu較慢,記憶體較小,小螢幕無線設備,在低頻連結予以最佳化
用來存取web協定堆疊
 WAE(wireless application environment,無線應用環境),使用WML(wireless markup language,無線標記語言)
 WSP(wireless session protocol,無線議程協定)
 WTP(wireless transaction protocol,無線交易協定)
 WTLS(wireless transport layer security,無線傳輸層安全)
 WDP(wireless datagram protocol,無線資料段協定)
 bearer layer(載體層),ex GSM,CDMA,D-AMPS,GPRS…

i-MODE(information-mode)
資料網路基植於cdma,以9600bps傳輸128
imode系統:新的傳輸系統+新的手機+用於網頁的新語言
傳輸系統:聲音用電路交換網路(類d-amps)+imode用新分封交換網路(類adsl)
使用LTP(lightweight transport protocol,輕型傳輸協定),和協定轉換閘道溝通
網頁解譯程式(瀏覽器)使用chtml(compact HTML,精簡式HTML),像HTML1.0,不支援javascript…等
imode伺服器支援cgi,perl,php,jsp,asp…等