zoukankan      html  css  js  c++  java
  • http核心模块 node

    ttp超文本传输协议
    * 协议至少双方 -> http双方!!
    * 客户端(浏览器) -> 服务器 BS
    - 原生应用(QQ) -> 服务器 CS

    * 就是数据如何传输

    * 特点:

    * 一问一答(先有请求,后有响应)
    * 5大特点:
    * 轻便/ 简单快速 支持客户/服务器模式
    * 无连接(不为每一个请求保持住链接)
    * 无状态( 服务器不记得客户端是谁 ) -> cookie

    #### 请求与响应交互的过程
    * 见图

    #### 主体对象(核心对象http)
    * 服务器对象 ```http.createServer();```
    * 客户端对象```http.request({host:'www.baidu.com'});```
    * 请求报文对象(对于服务器来说,是可读) req
    * 响应报文对象(对于服务器来说,是可写) res

    #### 状态码分类

    * 1 开头,正在进行中
    * 2开头,完成
    * 3开头 ,重定向
    * 4开头 , 客户端异常
    * 5开头, 服务器异常

    #### 创建服务器步骤
    * 1:引入http核心对象
    * 2:利用http核心对象的.createServer(callback); 创建服务器对象
    * 3:使用服务器对象.listen(端口,ip地址) 开启服务器
    * 4:callback(req,res) 根据请求处理响应

    #### 请求报文对象(只读)
    * 请求首行中的url `req.url `
    * 请求首行中的请求方式 `req.method`
    * 请求头中的数据`req.headers` 是一个对象
    * 头信息中,也可以作为与服务器交互的一种途径

    #### 响应对象

    * 响应首行 `res.writeHead(状态码)`
    * 写响应头
    * 一次性写回头信息
    * `res.writeHead(200,headers)`
    * 多次设置头信息
    * `res.setHeader(key,value);`
    * 写响应体
    * 一次性写回响应体
    * `res.end();`
    * 多次写回响应体
    * `res.write();`

    #### 请求与响应

    * 头行体
    * content-type是对请求或者响应体数据,做出的说明

    #### 响应体数据

    * res.write('字符串'||读出文件的二进制数据)

    * res.end('字符串'||读出文件的二进制数)

    #### 获取请求体数据

    * 代码对比


    * 浏览器: $('#xx').on('submit',function(e){ })
    * 服务器: req.on('data',function(d){ d.toString(); })

  • 相关阅读:
    Burp Suite Intruder的4种攻击类型
    JSP Response Set Status
    Mybatis中的#和$的区别
    请求转发、请求重定向
    Spring IoC Container and Spring Bean Example Tutorial
    成员变量声明时初始化和构造方法中初始化的区别
    JDK开发WebService
    Mac设置截图保存位置
    Socket通信
    DOM4J解析xml
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/10148018.html
Copyright © 2011-2022 走看看