Http传输协议(包含对get和post请求的封装)

目录

1 http协议是什么(可参考计算机网络这本书)

1.1 协议

1.2 http协议

1.3 工作原理

2 http协议通信过程

3 http报文

3.1请求报文

3.2应答报文

4 请求方式

4.1 路由传参的区别

4.2 get和post请求方式的封装

4.3 常用请求头信息

5 Http状态码

5.1 状态码分类

6 C/S、B/S架构

1 http协议是什么(可参考计算机网络这本书)

1.1 协议

       一种约定协议,一种客户端跟服务端之间的约定协议。(协议有多层结构,常见高层协议如:TCP/IP负责点到点传送信息包

1.2 http协议

     用于从万维网服务器传输超文本到本地浏览器的传送协议。

1.3 工作原理

HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

Web服务器有:Nginx,Apache服务器,IIS服务器(Internet Information Services)等。

Web服务器根据接收到的请求后,向客户端发送响应信息

2 http协议通信过程

(1)客户与服务器建立连接。

(2)客户向服务器提出请求。

(3)服务器接受请求,并根据请求返回相应的文件。

(4)客户与服务器关闭连接。

3 http报文

被传送的东西,也就是上述通信过程传递的东西。

3.1请求报文

请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体

3.2应答报文

状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体

4 请求方式

  HTTP协议中定义了9种方法 GETPOST 、HEAD、 OPTIONSPUTPATCHDELETETRACE 和CONNECT 方法。其中GETPOST 方法最为常用。

GET和POST的区别为:

  • GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连。而POST方式是把提交的数据放在HTTP包的Body中
  • GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制
  • GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值
  • GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码 (总之就是GET方式不安全!)

4.1 路由传参的区别

1、query携带参数

 this.$router.push({
     path:'/order',
     query:{
        orduId:this.orduId
         }
      })
2、params携带参数

this.$router.push({
      path:'/order/serviceRecord',
      params:{
        orduId:this.orduId
       }
    })
3、二者区别

params 和 命名路由的name 一起使用 并且页面刷新时参数也会消失

query 和 路由地址 path 一起使用,页面刷新不会丢掉参数

(由此可见我个人更偏向于query传参)

4、参数接收

this.$route.query.参数名称

this.$route.params.参数名称

!!!特别注意:传参时用的是 $router 接收参数时用的是 $route

4.2 get和post请求方式的封装


setParams (param) {
    let pStr = ''
    for (var p in param) {
        if (param[p] === undefined) { continue }
            let pstrs = param[p] === null ? '' : param[p]
             pStr += '&' + p + '=' + pstrs
        }
      return pStr.substr(1)
   }
这样在传入参数时只需要调用这个方法传入相应的值就可以啦~.~

4.3 常用请求头信息

Accept: 可接受的响应内容类型(Content-Types)

Cookie: 由之前服务器通过Set-Cooki设置的一个HTTP协议Cookie

Content-Type: 请求体的 MIME 类型 (用于 POST 和 PUT 请求中)

Date: 发送该消息的日期和时间(以 RFC 7231 中定义的"HTTP 日期"格式来发送)

Expect: 表示客户端要求服务器做出特定的行为

From: 发起此请求的用户的邮件地址

Host: 表示服务器的域名以及服务器所监听的端口号。如果所请求的端口是对应的服务的标准端口(80),则端口号可以省略。

Origin: 发起一个针对跨域资源共享的请求(该请求要求服务器在响应中加入一个 Access-Control-Allow-Origin 的消息头,表示访问控制所允许的来源)。

5 Http状态码

  • 200 - 请求成功
  • 400 -  客户端请求的语法错误,服务器无法理解
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误
  • 504 - 请求方式错误

5.1 状态码分类

分类分类描述
1**提示信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接收并处理
3**重定向,需要进一步的操作以完成请求
4**客户端错误,请求包含语法错误或无法完成请求
5**服务器错误,服务器在处理请求的过程中发生了错误

6 C/S、B/S架构

相信近期写论文的童鞋们也会涉及到这两个问题

C/S结构(服务器/客户机模式)C/S结构通常采取两层结构。

  • 将应用程序分为客户端和服务器端两层,客户端程序用于展示功能,为用户提供操作界 面,同时也可以进行业务逻辑的处理;而服务器端程序负责操作数据库完成数据处理等 核心业务
  • 由此可见通过C/S开发模型开发的应用程序,客户端程序可以承担一部分业务逻辑处 理,特别是数据的预处理工作,减轻了服务器端程序的压力

B/S结构(浏览器/服务器模式)这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。

  • 不需要安装客户端
  • 开发人员只需要对服务器端程序进行开发、维护,降低开发维护难度和开发维护成本
  • 浏览器主要负责用户界面的动态展示,只处理一些简单的逻辑功能
  • 所有具体业务逻辑的处理都由服务器端程序完成,所以程序负载几乎都转移给服务器端
  • 但是随着服务器负载的增加,可以平滑地增加服务器的个数并建立集群服务器系统,然 后在各个服务器之间做负载均衡
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值