nodejs获得服务器响应,node web服务器 nodejs服务器 http发展史 请求和响应 http协议特点...

一、web服务器

web服务器又称为www服务器,专门用来托管网站的服务器。一台服务器上可以一台服务器上可以托管多个网站。各网站的开发者只需要把做好的网页和其他文件放置在web服务器上,世界上的其他用户就可以使用浏览器访问服务器中的网页。

1)发送请求,后台分析用户的url,明白客户端想要干什么

2)根据用户的需要,找他想访问的资源

3)去数据库中查找相应的数据

4)编写应用程序将数据渲染为HTML代码,发送到客户端

5)显示到浏览器

二、服务器上的应用程序介绍

硬件:超大内存+Intel至强系列多线程处理器+超大硬盘+带宽

软件:

​操作系统:linux(或 Unix、Windows)

​http服务:Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。(Nginx 俄罗斯人开发的免费开源服务器应用程序,结构简单速度快 )

​编程语言:Java、php、Python、go....

​数据库:Oracle、mysql、sqlserver ,DB2 ...

三、IP地址与域名

实际上我们是通过IP地址来访问网络服务,但是不容易记忆,因此发明了域名来代替IP地址。127.0.0.1 (localhost)都可以用来访问本地服务器。也就是说iP地址和域名之间有一一对应的关系。

四、node.js服务器

使用node.js 演示一个基本的http服务架构。注意node的代码虽少,但性能很好。

let http= require("http");

let fs=require("fs");

// 创建一个http服务器

let server = http.createServer((request,response)=>{

console.log( request.url );

// 从服务器上读取hello.html 发送给浏览器

fs.readFile("./hello.html", (err,data)=>{

response.end( data.toString() );

})

})

// 启动http服务在3000端口

server.listen(3000,()=>{

console.log("服务已启动在3000端口");

})

五、http的发展历史

1) http 0.9

整个协议比较简单,只有一个get方法,客户端只能发生get请求,服务端只能返回html。传输完成后TCP自动断开连接。

IDC、TCP、http、html 之间的区别:

IDC:Internet data center 网络数据服务提供商

TCP:可以理解为一个高速公路,客户端与服务器端必须先建立TCP通道,才能下一步操作。

HTTP:TCP建立后, http协议可以理解为高速公路上的汽车,汽车上的货物就是html。

2) http1.0

有了请求(request)与响应(response)头,用来描述请求与响应的基本信息。另外还增加了POST和http方法,服务器不仅仅可以发送html,还可以支持图片、视频、二进制类的文件。

http1.0 最大的问题当TCP通道建立后,一次只能发送一个http请求。(高速路上只能跑一辆车)当网页的内容较多时,容易产生网络堵塞情况,极大的影响效率。

3) http1.1

特征:

​默认开启了持久连接(keep-alive),解决了1.0连接使用效率不高的问题。保持一段时间的连接,在此期间可以持续发送http请求:

​http1.1 添加了很多请求方法,除了get\post\http,还增加了put、delete、options、add 等等,这些将来可以用来创建RESTful 风格的路由设计。

​http1.1 缺点: 虽然使用了持久连接减少了TCP连接的成本,但是服务器对于同一个tcp连接中的请求仍然是按照先后顺序进行处理。可能会影响页面的渲染速度。因此人们发明了一些优化方法,比如精灵图(雪碧图),合并JavaScript、css等

4) http2.0

更加安全,高效。比如功能:网页的压缩传输、加密协议、流技术、复路多用等等。新版的浏览器普遍都已支持http2.0, 服务器端的应用程序目前正在开发推广中。

六、请求与响应

1) 请求(request)

输入url,点击表单提交按钮,script中的src属性,超链接、中的href ,设置手机上的手势操作都是请求(从客户端发送了一个请求信息)

​一个请求信息中包含:

1) 请求行( 包括了协议 ,url (URI))

2)请求头( request header )属性,以键:值的形式

3) 请求体( request body ) 提交的表单的内容。

2) 响应(response):在服务器接收和解释请求信息后,返回的一个响应信息

​一个响应信息中包含:

​a) 状态行

​b) 响应头 ,属性,以键:值的形式告诉客户端服务器可以响应的类型。content-type: 表示这次响应的内容类型: text/html image/jpeg application/x-javascript

​c) 响应体: 服务器返回的资源内容。如html代码,css代码等。

七、http协议特点:

1) 简单快速:http协议比较简单,因此通信速度比较快。

2)灵活:http允许传输任意类型的数据对象(css\img\js\html\二进制类型文件)

3)无状态: http无状态,http协议本身对事务处理没有记忆功能,服务器不知道浏览器的状态。即像登录操作,必须使用cookie\session 这样的技术来辅助。

4)无连接: 无连接的含义是限制每次连接只处理一个请求,服务器响应之后就断开连接。keep-alive也不是一直连接,有设置好的连接保存时间。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值