HTTP鏈接一個最基本的過程:瀏覽器
1 客戶端鏈接一個主機;
2 服務器接收鏈接,
3 客戶端請求一個文件,
4 服務器發送一個應答. 服務器
客戶端鏈接一個主機,典型的開始就是發送一個http請求dom
好比:url = 'http://www.xesam.com:8080/search?key=xe';函數
發送請求以後,DNS會解析域名,定位到對應的主機url
咱們用一個函數模擬:server
functiongenerateRequest(url){ //瀏覽器產生請求
DNS(urlParse(url).domain,url);//域名解析,urlParse爲了解析出網址
}
簡易域名解析:ip
varipMap = {
'www.xesam.com' : server,
'www.xesam_1.com' : 'server_1'
}
functionDNS(domain,url){
varserver = ipMap[domain];//定位主機
establishConnection(server,url);//若是服務器確認,則創建鏈接
}
簡易創建鏈接:域名
functionestablishConnection(server,requestUrl){
server(requestUrl);
}
簡易服務器:io
varprogressMap = {//對應的處理程序
http:function(request){
},
https:function(request){
}
}
functionserver(requestUrl){
setTimeout(function(){//這裏能夠避免阻塞
progressMap[request.requestProtocol](request);
},0)
}