网络层级
应用层,决定传输什么数据
传输层,(TCP,IP确认与重传机制)
网络层,
数据链路层,
从输入网址开始,做了什么
1、浏览器和服务器建立了一个tcp传输层通道
2、把url地址封装成http报文传输过去(http报文格式)
3、服务器返回页面数据或者其他数据
浏览器做了http的协议层
一、json数据传输
1、获取前端传输过来的数据
json数据被存放在request中,可以通过self.request.body获得,但是需要进行解码处理,self.request.body.decode(),就可以获得json数据进行后续处理了
2、给前端传输json数据
给前端传输json类型的数据,需要设定传输数据的类型,可以用self.set_header(key, value)设置请求头的相关信息,在此设置Content-Type,
`self.set_header("Content-Type", 'application/Json; charset="utf-8"')`
然后把要传输的数据写成字典的形式,用json包转化成json格式的数据,直接用json.write(data)写入前端即可
二、tornado异步相关
1、服务器端
1.1:listen方式
server = HTTPServer(app)
server.listen(8000)
IOLoop.current().start()
这种方式将创建一个简单的单进程服务器,且这种方式用来避免明确创建一个HTTPServer
1.2:bind/start方式
server = HTTPServer(8000)
server.bind(8000)
server.start(0)
IOLoop.current().start()
这种方式将创建一个简单的多进程服务器
1.3:add_sockets方式
sockets = tornado.netutil.bind_sockets(8000)
tornado.process.fork_processes(0)
server = HTTPServer(app)
server.add_sockets(sockets)
IOLoop.current().start()
这种方式将产生一个高级的多进程服务器
2、客户端