• 读书笔记《七天学会NodeJS》(2)


    0. http
        http模块可支持服务器使用和客户端使用。
        服务器端使用:
        http.createServer创建服务器对象,调用服务器对象的listen监听某端口,等待客户端请求;也是一种基于回调事件机制。
        HTTP请求由请求头+请求内容组成,请求头与请求内容(请求体)间有个空行,在http接收请求回调函数中request参数对象可访问请求头数据以及请求内容。
        HTTP响应由响应头+响应内容组成,在http接收请求回调函数中response参数对象可写入响应数据头以及数据内容(响应体)。
        
        客户端使用:
        http.request创建客户端对象并指定请求目标和请求头数据,此后调用客户端对象的write写入请求数据内容,调用end结束请求调用。
        此外对于GET请求,不需要请求体信息,可直接调用http.get的便捷API。
        接收到响应信息时,会调用回调函数,在此函数中的response参数对象可访问响应头数据以及响应体数据。
        对于采用http.request或http.get方式的HTTP请求时,实际上使用内部的http.globalAgent,也即是全局客户端,但全局客户端并发连接数目前至多为5个,
        若超过则可能发生socket hang up错误,此时可采用调大http.globalAgent.maxSockets属性值来解决,
        同样的https模块客户端也有同样的问题也可以以此方式解决。
        
        ......
        
    1. https
        相对HTTP,https需额外处理SSL证书。
        https.createServer相对http.createServer,多了一个参数对象以指定证书密钥信息(key、cert属性)。
        ......
        
    2. url
        一般在http/https请求时,用到url内置模块以解析URL、生成URL以及拼接URL。
        url.parse解析url字符串为URL对象。
        url.format则反向将URL对象转为url字符串。
        url.resolve拼接字符串构造url字符串。
        ......
        
    3. querystring
        querystring内置模块实现相互转化url参数字符串与参数构成的对象
        querystring.parse解析url字符串为参数构成的对象。
        querystring.stringify则反向转化参数对象为url字符串。
        ......
        
    4. zlib
        zlib内置模块可以实现压缩数据和解压数据,其也可用在压缩或解压http请求数据体以及响应数据内容,
        在http请求头信息中获取判断对方是否支持对应的压缩以及压缩方式accept-encoding,以及响应信息头中的content-encoding;
        以此方式过程中,请求方应在请求头信息中添加Accept-Encoding以及对应的响应方在响应头信息中需添加Content-Encoding均为gzip。
        zlib.gzip采用gzip压缩方式压缩数据内容。
        zlib.gunzip则解压被压缩的数据内容。
        ......
        
    5. net
        net内置模块可创建基于socket的服务器或客户端。
        net.createServer创建服务器对象并调用listen监听端口。回调参数对象为连接对象,可监听data事件以及调用write写数据。
        net.connect创建客户端对象,options参数指定连接地址和端口。
        使用net模块也可实现HTTP协议的底层操作(事实上传输内容用http对应的信息头+空行+数据内容即可实现http的封装)。
        ......
        
  • 相关阅读:
    《快速软件开发》学习笔记 之一
    Python+常用模块(2).md
    Python语法 (1).md
    使用mysql导入txt文件
    Python+numpy(3).md
    笔试二(程序题)
    啦啦啦 我的博客开通了
    java面试笔试
    笔试三(面试二)
    笔试三(面试)
  • 原文地址:https://www.cnblogs.com/haomiao/p/11650442.html
Copyright © 2020-2023  润新知