HTTP协议

1. HTTP协议的概念

超文本传输协议(英文: HyperText Transfer Protocol,缩写: HTTP)规定了如何从网站服务器传输超文本到本地浏览器,它基于客户端服务器架构工作,是客户端(用户)和服务器端(网站)请求和应答的标准。

 

 

2. 报文

在HTTP请求和响应的过程中传递的数据块就叫报文,包括要传送的数据和一些附加信息, 并且要遵守规定好的格式。

 

 

3. 请求报文

1.请求方式(Request Method)

  • GET请求数据

  • POST 发送数据

获取数据的请求一般用get,添加数据的请求一般用post。如果既不是获取数据也不是添加数据,一般也用post,因为post相对get要安全一些。最常见的get请求就是在浏览器地址栏输入网址的方式

2.请求地址(Request URL)

app.on('request', (req, res) => {
req.headers//获取请求报文   req.headers['名称'] //获取具体信息
req.ur1//获取请求地址
req.method//获取请求方法
};
// 引用系统模块http
const http = require('http');
//app就是创建的web服务器对象
const app = http.createServer();
// 为网站服务器对象添加请求事件,当客户端有请求的时候就执行事件处理函数
// request事件名称,(req, res)=>{}事件处理函数
app.on('request', (req, res) => {
   // 1.获取请求方式 req.method  
   // console.log(req.method);
   // if (req.method == 'POST') {
   //     res.end('post')
   // } else if (req.method == 'GET') {
   //     res.end('get')
   // }
   // 2.获取请求地址 req.url
   // console.log(req.url);
   if (req.url == '/index' || req.url == '/') {
       res.end('welcome to homepage')
  } else if (req.url == '/list') {
       res.end('welcome to listpage')
  } else {
       res.end('no page')
  }
   //3. 获取请求报文信息 req.headers
   console.log(req.headers['accept']);
   // res.end('<h2>hello user</h2>');
});
// 监听端口
app.listen(3000);
console.log('网站服务器启动成功');

4. 响应报文

  1. HTTP状态码

  • 200请求成功

  • 404请求的资源没有被找到

  • 500服务器端错误

  • 400客户端请求有语法错误

  1. 内容类型

  • text/html

  • text/css

  • application/javascript

  • image/jpeg

  • application/json

res.writeHead() 书写响应头,就是响应报文

有两个参数,参数1,状态码。参数二,响应头信息对象

 app.on('request', (req, res) => {
    // 设置响应报文
    // text/plain默认状态,纯文本 charset=utf-8编码格式
    res.writeHead(200, {
        'Content-Type': 'text/html;charset=utf8'
    });
});

 

posted @ 2020-10-23 23:14  清出于兰  阅读(110)  评论(0编辑  收藏  举报