HTTP 请求响应和 Node.js Note-FrontEnd-8

220 阅读2分钟

HTTP 请求响应和 Node.js Server 部署的相关知识,内容包括请求与响应模型、请求和响应细节、用 curl 构造请求、用 Node.js 读取请求、用 Node.js 设置响应、调试方法、拥有一台服务器、部署应用。

一、请求与响应模型

服务器就是一个没有显示器的端口,请求 -- 客户端(浏览器)向服务端(服务器)发一个东西,响应 -- 服务端(服务器)给客户端(浏览器)回一个东西。

如何发送请求: 用 Chrome 地址栏或用 curl 命令。帮你发请求的工具叫做「用户代理」,英文名 User Agent。

如何做出一个响应: Node.js 有一个 http 模块可以做到。这些代码就是服务器的代码,一般放在服务器上,path 是不带查询参数的路径 /x,query 是查询参数的对象形式{a:'1'},queryString 是查询参数的字符串形式 ?a=1,pathWithQuery 是带查询参数的路径,一般不用。

二、请求和响应细节

请求:

请求动词 路径加查询参数 协议名/版本
Host: 域名或 IP
Accept: text/html
Content - Type: 请求体的格式
回车
请求体(也就是上传的内容)

三部分:请求行、请求头、请求体。请求动词有 GET / POST / PUT / PATCH / DELETE 等,请求体在 GET 请求中一般为空。

响应:

协议名/版本 状态码 状态字符串
Content-Type: 响应体格式
回车
响应体(也就是下载内容)

三部分:状态行、响应头、响应体。

三、用 curl 构造请求

curl -v http://127.0.0.1:8888(默认最简单的)
  1. 设置路径和查询参数 -- 直接在 url 后面加
  2. 设置请求动词 -- Get → Post,加 -X
curl -v -X POST http://127.0.0.1:8888
  1. 设置请求头 -- Accept:*/* → text/html,加 -H
curl -v -X POST -H 'Accept: text/html' http://127.0.0.1:8888/xxxx?wd=hi#nihao
  1. 设置请求体,加 -d
curl -v -X POST -H 'Content-Type: text/plain;charset=utf-8 ' -d '请求体内容'

四、用 Node.js 读取请求

  1. 读取请求动词 -- request.method
  2. 读取路径 -- request.url 路径 ( 带查询参数 ),path 纯路径 ( 不带参数 ),query (只有查询参数 )
  3. 读取请求头 -- request.headers['Accept']

五、用 Node.js 设置响应

  1. 设置响应状态码 -- response.statueCode = 200
  2. 设置响应头 -- response.setHeader('Content-Type,'text/html'');
  3. 设置响应体 -- response.write('内容')

六、调试方法

console.log 可以验证对错,和所有语言一样,觉得哪里有错,就把它打印出来,不仅仅是 JS,也可以是 PHP,Java,Python,只不过 JS 是 console.log,Python 是 print,PHP 是 echo。

七、拥有一台服务器

购买一台服务器,推荐使用按量付费,即用即停。

八、部署应用

  1. 本地做应用,上传至 Github。
  2. 登录服务器,将代码下载下来,node 查看并重启。
  3. 登录页面查看。

「资料来源:©饥人谷」