网络编程

2018-07-18  本文已影响6人  励志摆脱懒癌的少女酱

简介

  node具有事件驱动、无阻塞、单线程等特性,其搭建服务器的优势是:

http服务器

  1. http模块
      HTTP服务继承自TCP服务器(net模块),它能与多个客户端保持连接,由于采用事件驱动,并不为每个连接创建额外的线程或进程,保持很低的内存占用,所以能实现高并发。HTTP服务以request为单位进行服务。
      http模块将连接所用的套接字的读写抽象为ServerRequest和ServerResponse对象。

    http模块处理请求
  2. http请求:ServerRequest对象
      该对象对于TCP连接的读操作,调用二进制模块http_parser进行解析,放置req.headers属性上,在解析完请求报文的报头后,触发request事件。


    http请求解析
  3. http响应:ServerResponse对象(可写流对象)
    (1)报文头

    • res.setHeader():对报文头部信息进行设置;
    • res.writeHead():该方法才会将报头写入连接中;
      (2)报文体
    • res.write()
    • res.end():结束请求但未断开连接(否则客户端一直处于等待状态),先调用write()发送数据,再发送信号告知服务器这次响应结束;
      注:报头在报文体发送前发送的,一旦开始了数据的发送,writeHead()和setHeader()将不再生效,调用res.end()结束响应后,Http服务器可能会将当前的连接用于下一个请求,或关闭请求(由keep-alive决定)。
      是否保持长连接

4.http服务的事件

http客户端

  1. http客户端的构建:http.request(options, connect事件);

    • options参数决定了http请求头中的内容;
    • 报文体:内容由请求对象的write()(向连接中写入数据)和end()(告知报文结束)实现;
      Ajax的实质就是一个异步的网络HTTP请求。
  2. http代理

3.http客户端事件

网络服务与安全

  1. TLS/SSL:公钥/私钥—非对称结构+数字证书,数据在传递到应用层之前就已经完成了加密和解密过程;
    (1)密钥

(2)数字证书:CA(数字证书认证中心,权威的第三方机构)为站点颁发证书—用户产生直接的密钥对,并将公钥和个人身份信息传送给认证机构,认证机构核实了用户身份后,将发给用户一个数字证书,其包含了用户个人信息和公钥信息,同时还有认证中心的签名信息。

https图解

上一篇 下一篇

猜你喜欢

热点阅读