我是一個(gè)服務(wù)器,名字是www.lingyv.cn,門牌號(hào)是121.42.155.28,每天得工作就是跟各種瀏覽器打交道。他們總來(lái)我這要求取信息、存信息、刪信息。可惜我才疏學(xué)淺,只稍微學(xué)過(guò)HTTP協(xié)議,所以看得懂用HTTP規(guī)定格式發(fā)過(guò)來(lái)的請(qǐng)求信,當(dāng)然,回復(fù)他的時(shí)候也是用HTTP規(guī)范寫回信。
我家有一個(gè)看門的人(服務(wù)器進(jìn)程),每當(dāng)有瀏覽器想找我時(shí),他就會(huì)過(guò)來(lái)通知我。
這不,說(shuō)著說(shuō)著他就進(jìn)來(lái)了。
“報(bào)~~~有瀏覽器找您?!?/p>
“好,跟他連線。”
OK,TCP連接已建立……
噠噠噠………打印機(jī)將請(qǐng)求報(bào)文打印了出來(lái)。
我拿過(guò)來(lái)看了看。
只見(jiàn)第一行寫著。
“GET /student/composition/index.html HTTP/1.1”
“恩,這是用1.1版本HTTP規(guī)范寫的。原來(lái)是找我要student文件夾里composition文件夾中的index.html文件啊?!蔽以谛睦锬睢?/p>
轉(zhuǎn)眼掃到第二行:“Host:www.lingyv.cn ”恩,是找我的沒(méi)錯(cuò)。接著往下看
第三行:“Connerction:keep-alive”噢,他跟我說(shuō)給他發(fā)完index.html后不要關(guān)閉跟他的連接
接著看第四、第五行:
“Accept:text/html”
“Accept-Language:zh-CN”
這是在告訴我他能接收哪些類型的信息以及他能接收的語(yǔ)言啊。然后看最后一行:
“User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36”
噢~~~這是在跟我表明自己的身份啊。
看完請(qǐng)求報(bào)文。我已經(jīng)明白了這位瀏覽器客戶的需求。趕緊找到index.html文件,給這位瀏覽器客戶回信(響應(yīng)報(bào)文)。
首先表明我使用的規(guī)范以及他的請(qǐng)求是成功的。
“HTTP/1.1 200 OK”
然后表明我接受獲取他獲取文件的請(qǐng)求
“Accept-Ranges: bytes”
接著告訴他我給他文件的類型
“Content-Type:text/html; charset=UTF-8“
寫上日期時(shí)間:
“Date:Wed, 13 Apr 2016 13:17:32 GMT“
告訴他我的個(gè)人信息:
“Server:Apache/2.0.61 (Unix)”
告訴他內(nèi)容的長(zhǎng)度:
“Content-Length:1350”
……
把這些聲明(響應(yīng)頭)寫完了。接下來(lái)空一行把他想要的文件內(nèi)容copy進(jìn)去(響應(yīng)體)。
好了,所有東西寫完,我就把信(響應(yīng)報(bào)文)給這位瀏覽器客戶發(fā)了過(guò)去,讓他得到自己想要的文件信息。