tips

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" 等等。

推荐阅读更多精彩内容

  • 面试前的准备 1.中/英文自我介绍2.离职的原因 html 1.把带 css 链接的 标签放在 标签内,而带 ...
    WEB前端含光阅读 2,164评论 3 26
  • 搭建了docker,发现非常好用,一个系统,只要一个push就提交到了平台,只要一个pull就拉到本地直接用,但是...
    美雨知春阅读 861评论 6 11
  • 前言 1. OkHttp 请求处理流程概述 当我们发起同步请求时,请求会被 Dispatcher 放到同步请求队列...
    灯不利多阅读 518评论 0 2
  • 一. 封装各模块作用 引入一般我会在项目的src目录中,新建一个request文件夹,然后在里面新建一个http....
    Raral阅读 261评论 0 8
  • 一、抓包概述 1. 抓包概念 抓包是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安...
    Anwfly阅读 205评论 0 3