HTTP连接一个最基本的过程:
1 客户端连接一个主机;
2 服务器接收连接,
3 客户端请求一个文件,
4 服务器发送一个应答.
客户端连接一个主机,典型的开始就是发送一个http请求
比如:url = 'http://www.xesam.com:8080/search?key=xe';
发送请求之后,DNS会解析域名,定位到对应的主机
我们用一个函数模拟:
functiongenerateRequest(url){ //浏览器产生请求
DNS(urlParse(url).domain,url);//域名解析,urlParse为了解析出网址
}
DNS(urlParse(url).domain,url);//域名解析,urlParse为了解析出网址
}
简易域名解析:
varipMap = {
'www.xesam.com' : server,
'www.xesam_1.com' : 'server_1'
}
functionDNS(domain,url){
varserver = ipMap[domain];//定位主机
establishConnection(server,url);//如果服务器确认,则建立连接
}
'www.xesam.com' : server,
'www.xesam_1.com' : 'server_1'
}
functionDNS(domain,url){
varserver = ipMap[domain];//定位主机
establishConnection(server,url);//如果服务器确认,则建立连接
}
简易建立连接:
functionestablishConnection(server,requestUrl){
server(requestUrl);
}
server(requestUrl);
}
简易服务器:
varprogressMap = {//对应的处理程序
http:function(request){
},
https:function(request){
}
}
functionserver(requestUrl){
setTimeout(function(){//这里可以避免阻塞
progressMap[request.requestProtocol](request);
},0)
}
http:function(request){
},
https:function(request){
}
}
functionserver(requestUrl){
setTimeout(function(){//这里可以避免阻塞
progressMap[request.requestProtocol](request);
},0)
}