likes
comments
collection
share

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

作者站长头像
站长
· 阅读数 13

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













转载自:https://segmentfault.com/a/1190000043498880
评论
请登录