關于url
URL 是大型標識符 URI(統一資
源標識)的一部分。這個超集是建立在已有的命名慣例基礎上的。一個 URL 是一個簡單的 URI,使用
已存在的協議或規劃(也就是 http,ftp 等)作為地址的一部分。為了進一步描繪這些,我們將會
Edit By Vheavens Edit By Vheavens
引入 non-URL 的 URI,有時這些被成為 URN(統一資源名稱)
,但是在今天我們唯一使用的一種 URI
是 URL,至于 URI 和 URN 你也許沒有聽到太多,這或許已被保存成 XML 標識符了。
HTTP請求報文格式
如街道地址一樣,Web 地址也有一些結構。美國的街道地址通常是這種格式“號碼 街道名稱”,
例如 123 主大街。這個和其他國家不同,他們有自己的規則。URL 使用這種格式:
prot_sch://net_loc/path;params?query#frag -------------------------------------------- Table 20.1 Web Address Components URL 部件描述 prot_sch 網絡協議或者下載規劃 net_loc 服務器位置(或許也有用戶信息) path 斜杠( / )限定文件或者 CGI 應用程序的路徑。 Params 可選參數 query 連接符( & )連接鍵值對 frag 拆分文檔中的特殊錨 --------------------------------------------
net_loc 可以進一步拆分成多個部件,有些是必備的,其他的是可選部件,net_loc 字符串如
下:
user:passwd@host:port
在這四個當中,host 主機名是最重要的。端口號只有在 Web 服務器運行其他非默認端口上時才
會被使用。(如果你不確定所使用的端口號,可以參到第十六章)。
用戶名和密碼部分只有在使用 FTP 連接時候才有可能用到,因為即使是使用 FTP,大多數的連接
都是使用匿名這時是不需要用戶名和密碼的。
-------------------------------------------- 表 20.2 網絡定位部件 net_loc 部件描述 user 登錄名 password 用戶的密碼 hostWeb 服務器運行的機器名或地址(必須字段) port 端口號(默認 80) --------------------------------------------
http協議頭格式
status-line 格式為:request-uri(即想要請求獲得的東西) HTTP版本號
headers<0個或多個>
<blank line> body
請求頭 status-line headers部分
一個例子
E..`.?@.@.(Q....
.......P.j#d....
.....q.......j..
.l..GET./styles/
nav.css.HTTP/1.1
..Host:.software
.hitwh.edu.cn..U
ser-Agent:.Mozil
la/5.0.(X11;.Ubu
ntu;.Linux.x86_6
4;.rv:41.0).Geck
o/20100101.Firef
ox/41.0..Accept:
.text/css,*/*;q=
0.1..Accept-Lang
uage:.zh-CN,zh;q
=0.8,en-US;q=0.5
,en;q=0.3..Accep
t-Encoding:.gzip
,.deflate..Refer
er:.http://softw
are.hitwh.edu.cn
/..Cookie:.hide:
inst84=1;.MOODLE
ID_=%25B2%2598O%
251D%25E2-%25E3%
255C%25B0;.ASP.N
ET_SessionId=mpt
y24w5y2dxwkv23qm
uooxg..Connectio
n:.keep-alive..I
f-Modified-Since
:.Wed,.14.Jan.20
15.07:36:44.GMT.
.If-None-Match:.
"0ce26d8cc2fd01:
0"..Cache-Contro
l:.max-age=0....
?
?
請求行有GET HEAD POST
GET:獲得request-uri所指出的任意信息
HEAD:類似于GET,但服務器只返回指定文檔的首部信息
POST:用來發送電子郵件新聞或提交表格,唯一需要在請求中發送body的請求
?