详情见:
关于TCP/IP协议所处的位置,上层模型基于下层模型,也就是我们在使用HTTP协议时时基于TCP/IP实现的。
三次握手(建立连接),四次挥手(断开连接)
ssl作为安全的一种方式(https)
websocket与tcp/ip
WebSocket在浏览器中是可以直接new的,所以该代码在浏览器中是可以直接执行的
上层自己的证书,当然在浏览器访问时还会提示有风险,因为这是自定义的
openssl genrsa 1024 > /path/to/private.pem
openssl req -new -key /path/to/private.pem -out csr.pem
openssl x509 -req -da
使用nodejs中内置的https模块和fs进行服务器的搭建:
htttp 协议缓存是对一些静态资源进行缓存(自动进行的)与ajax不同
Etag和if-none-match生成的随机数进行对比,来表现静态资源是否被修改
last-modified作为服务器中返回的最后修改的时间和if-modified-since已存的数据进行比对来判断静态资源是否被修改
自定义请求头中:类似token这种形式。
响应头:content-type可设置服务器返回资源的类型和编码方式;cor作为跨域处理的一种处理如下图;
代码附录:
tcpserver.js
//一般端游用tcp通信
const net = require('net');
//创建一个TCP服务器
var server = net.createServer(function(){
console.log("some on connect");
})
//设置监听接口
server.listen(3400);
//监听连接时间
server.on('connection',function(socket){
socket.write('游戏登录成功');
server.on('data',function(){
socket.write('晋级成功');
})
})
tcpclient.js
//一般端游用tcp通信
const net = require('net');
var client= net.Socket();
client.connect(3400,'127.0.0.1',function(){
setTimeout(function(){
client.write('晋级成功')
},1000)
})
client.on('data',function(data){
console.log(data.toString());
})
wsserver.js
const WebSocket = require('ws');
const WebSocketServer = WebSocket.Server();
const wss = new WebSocketServer({
port:3000
})
wss.on('connection',function(ws){
ws.send('连接成功');
setTimeout(() => {
ws.send('想听你说话');
}, 2000);
})