用node实现http服务器 一

    首先我们来了解一下当用户浏览一个网页的简单动作,内部的具体过程:

    1)用户通过浏览器发送一个http请求到指定的主机

    2)服务器接收到该请求,对该请求进行分析和处理

    3)服务器处理完成以后,返回对应的数据到用户机器

    4)浏览器接受服务器返回的数据,并根据接收到的进行分析和处理。

      即由客户端发送一个http请求到指定的服务器->服务器接受并处理请求->返回数据


    用node来实现http服务器最基本的有一下几步:

    1:用require引入http模块;

    2:调用http的createServer方法,就创建了一个server对象

          createServer方法 有一个回调函数,作用:当有请求发给服务器的时候,这个回调函数就会被执行

          该回调函数有两个参数:

                      (1)  参数request为浏览器发送过来的数据,

                      (2) 参数response为服务器对浏览器的请求进行的响应。

         上面的两个参数也提供了一些方法,我列举一些常用的:

                       (1)参数request对象:

                                        httpVertion:使用http的版本

                                        header:请求头信息的数据

                                        url:请求的地址

                                        method:请求的方法

                       (2)参数response对象: 

                                        response.write(chunk[, encoding][, callback]) :发送一个数据块到响应正文中

                                        response.end([data][, encoding][, callback])     :当所有的正文和头信息发送完成之后,调用该方法告诉服务器数据已经全部发送完成了,这个方法在每 次完成信息发送之后以后必须调用,并且是最后调用

                                        response.end([data][, encoding][, callback])    :该属性用来设置返回的状态码

                                       response.writeHead(statusCode[, statusMessage][, headers])这个方法只能在当前请求使用一次,并且要在end()方法之前。

                                       response.setHeader(name, value):设置返回头信息

    3:用listen方法监听端口,8080.端口代表了在服务器硬件或者系统中的运行的一个程序。
           localhost(80)。80是http的默认端口。


   浏览器中访问的url:localhost:8080

   

   下面用案例来看下是如何实现:

  

    

    在webstrom中运行之后,在浏览器中输入localhost:8080,方为结果如下:

   

     

    除了在response.end()方法里面写入返回浏览器的数据,也可以在调用response.end()方法前调用response.write()方法来写入数据。

   当然response.end()方法里面也可以写入一些复杂的javaScript的语句来进行页面的执行。但是如果浏览器请求的内容很多的时候,全部都写入该方法中,就不太靠谱了,那我们应该如何实现呢?详情看下篇文章讲解。



   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值