乐趣区

关于javascript:day25http和第三方模块的下载

day25-http 和第三方模块的下载

一、http

1.   介绍
    HTTP 协定,叫超文本传输协定 (Hypertext transfer protocol)。是一个规定,规定了浏览器和服务器之间通信的规定。http 的传输行为,共分为三个步骤:建设连贯进行传输断开连接

2.   三次握手
    目标:让客户端和服务端都能明确本人和对方是否能接管到音讯
    第一次握手:客户端被动给服务端发送音讯,申请连贯
    第二次握手:服务器收到音讯后,给客户端回应一个音讯,示意曾经收到要连贯的申请
    第三次握手:客户端收到服务器的音讯后,给服务器再次发送音讯,示意收到服务器响应的音讯


3.   传输
       客户端给服务器端发送申请
       服务器端给客户端做出响应

    3.1    申请
        申请行:申请形式;申请门路;协定以及版本
        申请形式 --get:获取、post:新增、put:批改、delete:删除
        申请门路 -- 残缺的 url 跳过协定和域名前面的局部(服务器中的 req.url)协定以及版本
            get: 输出地址敲回车;表单默认提交;a 标签跳转;引入文件
            post:form 设置 post 形式提交
            申请头 --- 申请行上面的那些键值对。指定这次申请的承受范畴、主机                    名、缓存、数据格式。。。申请空行 --- 空格换行
        申请主体 --- 就是这次申请发送次要数据
        post 申请的申请主体肯定是 From Data,源数据是 键 = 值
             let str = ''req.on('data', chunk => { str += chunk.toString() })
           req.on('end', () => {console.log(str) })

        get 申请的数据在地址栏中显示,肯定是 Query String Parameters
        require('queystring').parse(require('url').parse(req.url).query)

3.2    响应
     http 规定,服务器接管申请后,要对客户端进行响应。http 规定响应                信息必须遵循响应报文的规定。3.2.1    响应行(1)协定和版本(2)响应状态码:每次申请响应的时候,会带一个数字,示意这次                            申请的响应是什么状态
            1xx:代表申请已被承受,须要持续解决
            2xx:代表申请已胜利被服务器接管、了解、并承受
            3xx:代表须要客户端采取进一步的操作能力实现请
            4xx:代表了客户端看起来可能产生了谬误,障碍了服务器的解决
            5xx:代表了服务器在解决申请的过程中有谬误或者异样状态产生
            服务器设置响应状态码:res.writeHead(状态码, 状态形容)(3)响应状态形容:肯定是英文单词

    3.2.2    响应头
             设置响应头 - 防止中文乱码 
            res.setHeader('Content-Type','text/html;charset=utf8')
             响应信息中的键值对组成的响应头
    3.2.3    响应主体
            响应给客户端的内容 -------res.end(主体内容)

4.   四次挥手(1)第一次挥手,客户端被动对服务器发动断开申请(2)第二次挥手,服务器响应收到申请(3)第三次挥手,服务器断开连接(4)第四次挥手,客户端断开连接


二、第三方模块下载

            咱们在写代码的时候,本人不会写,内置也没有,找雷锋叔叔写好                的来用

    1.    npm-----nodejs 自带

     查看 npm 版本
            npm -v 

     npm 下载模块
        npm install/i 包名
        npm i 包名 包名 ... # 下载多个模块                          
           npm i 包名 @版本号 # 最新版本能够应用 @latest

     查看模块的所有版本
        npm view 模块 versions
    
    查看所有装置好的依赖包:npm list
          npm ls

    卸载:npm uninstall/un 包名

     npm 切换镜像源:npm config set registry #设置以后下载地址
            npm config get registry # 获取以后下载地址
        npm --registry https://registry.npm.taobao.org install node-red-            contrib-composer@latest # 长期切换应用

    npm 初始化命令(强制生成 package.json 文件):npm init # 手动输出整个包的信息
        npm init -y # 主动生成整个包的信息 - 不能在中文文件夹下应用

    有了 package.json 文件,要疾速将记录好的模块下载进去 -----npm i
        
    初始化(生成 package.json 文件)npm init------ 所有内容要手动输出
           npm init -y---- 所有内容都主动生成 ---- 不能在中文文件夹下执行


    2.    yarn
        多个模块之间有依赖关系的时候,npm 是同步下载,一个一个下                    载,yarn 能够异步下载,并发下载

             检测装置:yarn --version

             初始化:yarn init
                 yarn init -y

             下载安装包:yarn add 包
                 arn add 包 @版本号

             卸载包:yarn remove 包

             依据 package.json 装置记录好的模块:yarn
                  yarn install

三、常用工具

1.    nodemon
        监听文件变动主动重启
        下载 ----------- npm i nodemon -g
        检测版本 --------nodemon -v
        应用 ---------nodemon 文件名   


2.   http-server
    疾速的不必写代码的将一个文件当作动态资源服务器启动
     下载 ----------npm i http-server
     检测版本 ------http-server --version
     应用 ---- 命令行来到指标文件夹下 -----http-server













退出移动版