zoukankan      html  css  js  c++  java
  • 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'
        });
    });

     

  • 相关阅读:
    linux杀死僵尸进程
    通过dd命令显示硬盘的读写性能
    linux 压缩与解压缩
    linux云主机cpu一直很高降不下来,系统日志报nf_conntrack: table full, dropping packet.
    vsftp配置文件详解
    linux中ping带时间及打印内容到文件
    atop工具检测linux硬件异常
    windows连接服务端的域名正常,linux却不通,(针对于负载均衡后端节点设置)
    有你的地方就是天堂
    Java 异常 —— java.io.InvalidClassException: javax.xml.namespace.QName; local class incompatible
  • 原文地址:https://www.cnblogs.com/xc-dh/p/13917144.html
Copyright © 2011-2022 走看看