一个简单的http服务器
var http = require('http'); //请求http模块 http.creatServer(function(request,response){ //createServer启动服务器 response.writeHead(200,{'Content-Type':'text/plan'}); response.write('Hello world!'); response.end(); }).listen(8888); //监听8888端口
request和response是对象,可使用它们的方法来处理HTTP请求的细节。
我们为了把功能分开,可以把不同的功能放在不同的文件里,并生成模块。
建立一个文件server.js在里面写入:
var http = require('http'); //请求http模块 function start(){ var http = require('http'); http.creatServer(function(request,response){ response.writeHead(200,{'Content-Type':'text/plan'}); response.write('Hello world!'); response.end(); }).listen(8888);} exports.start = start;
在index文件中可以通过写入以下代码进行引用:
var server = require('./server'); server.start();
HTTP协议(超文本传输协议)-->是一种通信协议
他的作用是允许html文档从web服务器传送到客户端的浏览器。
整个事情的运作过程是这样的:
1.我们在浏览器中输入url
2.浏览器发送一个request给web服务器
3.然后web服务器作出响应,回复response给浏览器
4.我们就可以在自己的浏览器上看到这个页面的内容
在实际生活中,我们在浏览器和web服务器中间还添加了一个代理服务器(proxy),它接受我们的request,再替我们发送给web服务器,从web服务器那里接到response,然后再发送给我们的浏览器。
它的好处是:提高访问速度,隐藏访问者身份。
http协议书无状态的。这意味着:对一个服务器来说,同一个浏览器对它的两次请求是没有任何关系的。他并不知道这两个请求来自于同一个浏览器。所以我们引入了cookie来维护状态。
现在来解释一下url中包含的信息人
http://www.myblog.com:80/sj/test/test.aspx?name=anna&x=true#stuff
其中,
http是scheme,指定底层所使用的协议,如:http.https.ftp
www.myblog.com 是host,http服务器的ip地址
在:后面的80是端口,web一般默认为80,可以省略
/sj/test/test.aspx 是访问资源的路径
?后面的name=anna&x=true是发送给服务器的数据
#后面的stuff是锚(还不知道锚有神码用)
打开一个网页需要发送很多次request
1.需要请求html页面
2.请求html页面中包含的js,css文件