HTTP(Hypertext Transfer Protocol)是一种用于在网络上传输超文本数据的应用层协议。它是互联网上最为广泛使用的协议之一,也是万维网的基础。HTTP 使用客户端-服务器模型,客户端通常是浏览器,服务器则是存储在网络上的网站。
之前我们用node.js编写了一个基于http的服务端程序,有兴趣可以看一下:
HTTP 有一些基本特点和功能:
-
请求-响应模型:HTTP 使用请求-响应模型进行通信。客户端发送请求,服务器接收并处理请求后返回响应给客户端。
const http = require('http');
http.createServer(function (request, response) {
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(3000);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:3000/');
(request, response)
是在处理 HTTP 请求时常见的参数命名方式,它们代表了 HTTP 请求和响应对象。
request
对象代表了客户端向服务器发送的 HTTP 请求,包含了客户端发送的所有信息,如请求的 URL、请求方法、请求头部、请求体等。
response
对象则代表了服务器向客户端发送的 HTTP 响应,包含了服务器返回给客户端的所有信息,如状态码、响应头部、响应体等。
例如上文中:
response.end('Hello World\n');
就是设置服务端向客户端发送响应数据:“Hello World”,结果是这样:
因为http用的是请求-响应模型进行通信,客户端必须先请求,服务端才能响应,所以在我们写JS代码的时候要注意,request(请求)和response(响应)的位置不要写错了。毕竟用箭头函数的形式很容易出错:
const server = http.createServer((req, res) => {
//响应内容
})