目录
一、初始HTTP协议
Hypertext Transfer Prtocol 超文本传输协议
- 协议:双方必须共同遵从的一组约定
HTTP协议:对浏览器和服务器之间的通信进行约束
二、IP
IP→寻找网络设备
IP也称为IP地址,本身是一个数字标识,例如192.168.1.3
ip本质是32bit的二进制数字,每8bit一组转成十进制合在一起并用.分开
- IP的作用:用来标识网络中的设备,实现设备间的通信
IP的分类
三、端口
端口:应用程序的数字标识,一台现代计算机有65536个端口(0~65535),一个应用程序可以使用一个或多个端口。
- 端口的主要作用:实现不同主机应用程序之间的通信
四、创建HTTP服务
1.导入HTTP模块
const http = require('http')
2.创建服务对象
const server = http.createServer((request, response) => {
response.end('Hello HTTP Server')
})
3.监听端口,启动服务
server.listen(9000, () => {
console.log('服务已经启动....');
})
五、提取HTTP报文
//1.导入HTTP模块
const http = require('http')
// 2.创建服务对象
const server = http.createServer((request, response) => {
//获取请求方法
// console.log(request.method);
// 获取请求的url
// console.log(request.url);//只包含 url 中的 路径 与 查询字符串
// 获取HTTP协议版本号
// console.log(request.httpVersion);
// // 获取请求体
// // 1.声明一个变量
// let body = ''
// // 2.绑定 data 事件
// request.on('data', chunk => {
// body += chunk;
// })
// // 3.绑定end事件
// request.on('end', () => {
// console.log(body);
// })
//响应
// 获取请求路径和查询字符串
// 实例化 url 对象
let url = new URL(request.url, 'http://127.0.0.1:9000/');
// console.log(url);
// 输出路径
// console.log(url.pathname);
response.end('Hello HTTP Server')
})
// 3.监听端口,启动服务
server.listen(9000, () => {
console.log('服务已经启动....');
})
// ctrl +c停止 终端
六、设置HTTP响应报文
1.设置响应状态码
response.statusCode = 203
2.设置响应状态的描述
response.statusMessage = 'ILoveYou'
3.设置响应头
response.setHeader('content-type', 'text/html; charset = uth - 8')
// 同名
response.setHeader('test', ['a', 'b'])
4.设置响应体
response.write('666')
完整代码:
//导入HTTP模块
const http = require('http')
// 创建服务对象
const server = http.createServer((request, response) => {
// 1.设置响应状态码
response.statusCode = 203
// 2.设置响应状态的描述
response.statusMessage = 'ILoveYou'
// 3.设置响应头
response.setHeader('content-type', 'text/html; charset = uth - 8')
// 同名
response.setHeader('test', ['a', 'b'])
// 4.设置响应体
response.write('666')
response.end('response')
})
// 监听端口,启动服务
server.listen(9000, () => {
console.log('服务已经启动....');
})