1.我们剖析上下文,需要将剖析的代码写好。

    1. const Koa = require('koa');
    2. const app = new Koa();
    3. app.use(async ctx => {
    4. ctx.body = ctx; //这段代码将ctx部分内容都返回到浏览器body里面,。
    5. });
    6. app.listen(3000);

    2.浏览器请求
    剖析上下文(ctx) - 图1

    3.显示返回浏览器截图和代码
    剖析上下文(ctx) - 图2

    1. { //请求信息
    2. request: {
    3. method: "GET", //请求get方式请求获取
    4. url: "/", //访问的路由
    5. header: {
    6. host: "127.0.0.1:3000",//访问的域名或ip以及端口
    7. //Host 请求头指明了服务器的域名,以及服务器监听的TCP端口号。
    8. connection: "keep-alive",
    9. //connection: "keep-alive",表明事务处理是否关闭连接。
    10. //如果该值是“keep-alive”,网络连接就是持久的,不会关闭,使得对同一个服务器的请求可以继续在该连接上完成。
    11. cache-control: "max-age=0",
    12. //用于在http 请求和响应中通过指定指令来实现缓存机制。不是一个标准的
    13. //max-age=0 表示缓存存留多久
    14. upgrade-insecure-requests: "1",
    15. //向服务器端发送信号表示它支持 upgrade-insecure-requests 的升级机制
    16. user-agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
    17. //一些标准和系统信息
    18. accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    19. //表示可以处理的内容类型
    20. accept-encoding: "gzip, deflate, br",
    21. //客户端能够理解的内容编码方式
    22. accept-language: "zh-CN,zh;q=0.9,en;q=0.8"
    23. //语言信息
    24. }
    25. },
    26. //响应信息
    27. response: {
    28. status: 200,
    29. message: "OK",
    30. header: {
    31. content-type: "application/json; charset=utf-8"
    32. }
    33. },
    34. app: {
    35. subdomainOffset: 2,
    36. proxy: false,
    37. env: "development"
    38. },
    39. originalUrl: "/",
    40. req: "<original node req>", //node的req
    41. res: "<original node res>", //node的res
    42. socket: "<original node socket>"
    43. }