实战node.js之get/post请求在web应用架构在客户端的使用(代码片段)

黎燃黎燃 黎燃黎燃     2022-12-01     317

关键词:

@[toc]

GET/POST请求

在许多情况下,我们的服务器需要处理用户的浏览器,例如表单提交。
get/post请求通常用于向服务器提交表单。

var http = require(http);
var url = require(url);
var util = require(util);

http.createServer(function(req, res)
    res.writeHead(200, Content-Type: text/plain; charset=utf-8);
    res.end(util.inspect(url.parse(req.url, true)));
).listen(3000);

在浏览器中访问http://localhost:3000/user?name=黎燃&url=并查看返回的结果:
我们可以使用URL解析方法来解析URL中的参数。代码如下:

var http = require(http);
var url = require(url);
var util = require(util);

http.createServer(function(req, res)
    res.writeHead(200, Content-Type: text/plain);

解析 url 参数

    var params = url.parse(req.url, true).query;
    res.write("网站名:" + params.name);
    res.write("\\n");
    res.write("网站 URL:" + params.url);
    res.end();

获取 POST 请求内容

post请求的内容都在请求正文中,http Serverrequest没有属性content作为请求正文,因为等待发送请求正文可能是一项耗时的任务。
例如,在上传文件时,我们可能不需要注意请求主体的内容。
恶意post请求将极大地消耗服务器的资源,因此node JS默认情况下不会解析请求体。

var http = require(http);
var querystring = require(querystring);
var util = require(util);

定义了一个post变量,用于暂存请求体的信息

var post = ; 

通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中

req.on(data, function(chunk)    
        post += chunk;
    );

在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。

 req.on(end, function()    
        post = querystring.parse(post);
        res.end(util.inspect(post));
    );

Web 应用架构

Web服务器通常指的是Web服务器,它指的是驻留在Internet上的特定类型计算机的程序。
web服务器的基本功能是提供web信息浏览服务。它只需要支持HTTP协议、HTML文档格式和URL,并与客户端的web浏览器协作。
大多数web服务器支持服务器端脚本语言(PHP、python、Ruby)等,并通过脚本语言从数据库获取数据,然后将结果返回到客户端浏览器。
目前,最流行的三种web服务器是Apache、nginx和IIS。

节点。JS提供了一个HTTP模块。HTTP模块主要用于构建HTTP服务器和客户端。使用HTTP服务器或客户端函数时必须调用HTTP模块。代码如下:

var http = require(http);
var http = require(http);
var fs = require(fs);
var url = require(url);

创建服务器

http.createServer( function (request, response)   

解析请求,包括文件名

var pathname = url.parse(request.url).pathname;

输出请求的文件名

console.log("Request for " + pathname + " received.");

从文件系统中读取请求的文件内容

 fs.readFile(pathname.substr(1), function (err, data) 
      if (err) 
         console.log(err);

HTTP 状态码: 404 : NOT FOUND,Content Type: text/html

response.writeHead(404, Content-Type: text/html);
      else  

响应文件内容

 response.write(data.toString()); 

发送响应数据

response.end();

控制台会输出以下信息

console.log(Server running at http://127.0.0.1:8080/);

使用 Node 创建 Web 客户端

Node需要引入HTTP模块来创建web客户端和客户端JS文件

var http = require(http);

用于请求的选项

var options = 
   host: localhost,
   port: 8080,
   path: /index.html  
;

处理响应的回调函数

var callback = function(response)

不断更新数据

 var body = ;
   response.on(data, function(data) 
      body += data;
   );

数据接收完成

console.log(body);

向服务端发送请求

var req = http.request(options, callback);
req.end();

node.jsget/post请求

Node.jsGET/POST请求在很多场景中,我们的服务器都需要跟用户的浏览器打交道,如表单提交。表单提交到服务器一般都使用GET/POST请求。本章节我们将为大家介绍Node.jsGET/POST请求。获取GET请求内容由于GET请求直接被嵌入在路径中,U... 查看详情

将 Node.js GET /POST 请求更改为 Ajax

】将Node.jsGET/POST请求更改为Ajax【英文标题】:ChangetheNode.jsGET/POSTrequeststotheAjax【发布时间】:2018-01-1020:20:26【问题描述】:我是JavaScript的初学者,正在努力通过使用基于Ajax的GET/POST请求从一些Node.js后端代码发出相同的请求。我... 查看详情

性能工具之locust工具get与post请求(代码片段)

...验get/post代码,参考代码如:@task(1)defget_7dTest(self):#定义请求头he 查看详情

jmeter请求之get与post的区别?

GET后退按钮/刷新无害,POST数据会被重新提交(浏览器应该告知用户数据会被重新提交)。GET书签可收藏,POST为书签不可收藏。GET能被缓存,POST不能缓存。GET编码类型application/x-www-form-url,POST编码类型encodedapplication/x-www-form-urlen... 查看详情

性能工具之locust工具get与post请求(代码片段)

文章目录前言脚本示例总结前言最近在学习Locust性能工具,发现Locust性能工具脚本需要python基础才能写脚本,但是对于性能测试人员来说python是基本功夫。脚本示例在Locust中get脚本怎么写,为了方便直接在代码运行调... 查看详情

8.13-8.19博客精彩回顾

...​3.​​Java8重构传统设计模式,是真的优雅!​​4.​​实战Node.js之GET/POST请求在Web应用架构在客户端的使用​​5.​​【Docker那些事儿】容器跑不动?网络可不背锅​​6.​​防火墙基础之总部与分支互访OSPF配置​​7.​​Pytho... 查看详情

node.js路由

Node.js路由我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相应的代码。因此,我们需要查看HTTP请求,从中提取出请求的URL以及GET/POST参数。这一功能应当属于路由还是服务器(甚至作为... 查看详情

goweb编程实战----创建客户端(代码片段)

目录创建一个客户端Get()请求Post()请求请求头设置创建一个客户端在Go语言的net/http包中,还提供了一个被称为Client的结构体。该结构体提供了Get()、Post()两个请求函数。下面,我们来分别使用代码实现这些请求。Get()请求... 查看详情

goweb编程实战----创建客户端(代码片段)

目录创建一个客户端Get()请求Post()请求请求头设置创建一个客户端在Go语言的net/http包中,还提供了一个被称为Client的结构体。该结构体提供了Get()、Post()两个请求函数。下面,我们来分别使用代码实现这些请求。Get()请求... 查看详情

测试开发面试准备之http协议-get,post的区别?

...uestbody中。GET在浏览器回退时是无害的,而POST会再次提交请求。 GET产生的URL地址可以被Bookmark,而POST不可以。 GET请求会被浏览器主动cache,而POST不会,除非手动设置。 GET请求只能进行url编码,而POST支持多种编码方... 查看详情

node.js创建服务器及知识点(代码片段)

...查询字符串模块URL模块中间件挂载路由器node.js和mysql项目实战知识点完整代码注意点用http协议创建web服务器//引入httpconsthttp=require('http');//创建web服务器constapp=http.createServer();//设置端口app.listen(8080); //http://127.0.0.1:8080... 查看详情

上网(web方式get)是啥意思

...也是两者差别之一了。2)Post,它是可以向服务器发送修改请求,从而修改服务器的,比方说,我们要在论坛上回贴、在博客上评论,这就要用到Post了,当然它也是可以仅仅获取数据的。3)Delete删除数据。可以通过Get/Post来实现。4... 查看详情

性能工具之locust工具get与post请求(代码片段)

...码,参考代码如: @task(1)defget_7dTest(self):#定义请求头header="User-Agent":"Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/69.0.3497.100Safari/537.36"response=self.client.get("/7d/",headers=header,verify=F... 查看详情

如何捕获从 MFC Web 浏览器 C++ 发出的 GET/POST 请求

】如何捕获从MFCWeb浏览器C++发出的GET/POST请求【英文标题】:HowtocaptureGET/POSTrequestmadefromMFCwebbrowserc++【发布时间】:2018-11-0201:22:36【问题描述】:我有MFC应用程序,它基本上是网络浏览器。我为此使用了CHTMLView类。在执行应用程... 查看详情

创业笔记-node.js入门之一个完整的基于node.js的web应用

...实际才行:用户可以通过浏览器使用我们的应用。当用户请求http://domain/start时,可以看到一个欢迎页面,页面上有一个文件上传的表单。用户可以选择一个图片并提交表单,随后文件将被上传到http://domain/upload,该页面完成上传... 查看详情

node.js切近实战之linux部署

之前的话我们的项目都是跑在windows上,今天我们要将我们的程序跑到linxu机器上。在看linux部署之前,我们先看一下node.js类似于asp.netmvc的过滤器或者叫拦截器。在app.js中我们加入如下代码var beforeRequest = function (req... 查看详情

node.js+vue+mysql项目实战入门之环境搭建,项目创建-附github地址(代码片段)

Node进行后端开发,Vue进行前端页面的开发,实现了前后端的分离。在开发中使用Express框架可以快速地开发web应用程序。1.安装node.js下载对应版本的,网址:Download|Node.js;进行傻瓜式安装:最后点击install... 查看详情

post和get请求区别

1.请求长度的限制    在HTTP协议中,从未规定GET/POST的请求长度限制,对于GET,对url的限制来源于浏览器或web服务器,浏览器和服务器限制了url的长度。因此,在使用GET请求时,传输数据会受到URL长度的限制。对于P... 查看详情