一些零落的,和http相关的知识

一些零散的,和http相关的知识


一个简单的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文件