tips

作者: 湖衣 | 来源:发表于2017-10-19 15:55 被阅读0次

    TCP和UDP的区别:

    1.基于连接与无连接;(TCP是面向连接协议,UDP是无连接协议)
    2.对系统资源的要求(TCP较多,UDP少);
    3.UDP程序结构较简单;
    4.流模式与数据报模式 ;
    5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

    线程和进程

    一个程序至少有一个进程,一个进程至少有一个线程.
    线程的划分尺度小于进程,使得多线程程序的并发性高。
    另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
    一个线程包含以下内容:
    一个指向当前被执行指令的指令指针;
    一个栈;
    一个寄存器值的集合,定义了一部分描述正在执行线程的处理器状态的值;
    一个私有的数据区。

    手写HTTP

    在全局下面创建一个index.js,写入:
    let http = require('http');//nodejs的核心文件http
    let PORT = 7000;//监听端口号
    let APP = require('./app/index')//进行一个中间层的抽离
    let server = new APP();
    http.createServer(server.initSever()).listen(PORT,()=>{
    console.log('sever run~~~')
    })//创建一个服务器,端口号为7000
    进入全局建立APP文件夹,并在下面创建一个index.js。进入全局,创建public文件夹,并在下面写一个index.html,我们要做的就是启动服务器让index.html能够跑起来
    class APP{
    initSever(){
    return (request,response)=>{
    let {url} = request;//ES6的字符串结构
    let urlHeader = './public'
    let getPath = (url)=>{
    return path.resolve( process.cwd(),urlHeader+url)
    } //使用path.resolve使它的路径转成绝对路径。
    if(url=='/') url = '/index.html';//因为开启服务器,它默认的url为'/'
    //我们想让它的url锁定public下面的index.html,所以我们需要对url进行一些处理。
    url = getPath(url)//这时候打开端口首页就是public/.index.html
    //接下里我们就可以读取文件了
    fs.readFile(url,'utf8',(error,data)=>{
    response.end(data);
    })
    }
    }
    }
    module.exports = APP
    写好之后我们可以开启服务器了:我先在html写<h2>hello world</h2>,
    在终端里面写npm run start

    现在我可以在浏览器开启:http://localhost:7000

    排序算法区别

    适配移动端,vue和react

    XSS

    将重要的cookie标记为http only, 这样的话Javascript 中的document.cookie语句就不能获取到cookie了.
    只允许用户输入我们期望的数据。 例如: 年龄的textbox中,只允许用户输入数字。 而数字之外的字符都过滤掉。
    对数据进行Html Encode 处理
    过滤或移除特殊的Html标签, 例如: <script>, <iframe> , < for <, > for >, &quot for
    过滤JavaScript 事件的标签。例如 "onclick=", "onfocus" 等等。

    相关文章

      网友评论

          本文标题:tips

          本文链接:https://www.haomeiwen.com/subject/cbezsxtx.html