get/post ,http/https,cookie/session

本文介绍了HTTP相关概念的区别。包括POST与GET在数据传输、缓存性、传输大小和安全性上的差异;HTTPS和HTTP在证书、加密、端口等方面的不同;session和cookie在存储位置等方面的区别;还对比了RPC和HTTP在远程调用时的特点,如RPC速度快但要求统一框架,HTTP通用性强。

一post与get区别

  1 数据传输:把参数包含在URL中,POST通过request body传递参数。(为什么get比post更快 ,post请求包含更多的请求头) 

GET产生一个TCP数据包;POST产生两个TCP数据包,并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

2缓存性:get会将数据缓存起来,而post不会 

3 传输数据的大小:get具有大小限制,post没有。get的最大长度限制是因为浏览器和web服务器限制了URL的长度 

4安全性: 原则上post比get安全,传输参数时url不可见

二 HTTPS和HTTP的区别:

      https协议需要到ca申请证书,一般免费证书很少,需要交费。

      http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

      http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。

      http的连接很简单,是无状态的。

      HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

三session 和cookie的区别

     1session 在服务器端,cookie 在客户端(浏览器)
     2session 默认被存在在服务器的一个文件里(不是内存)
     3session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也        会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)
     4session 可以放在 文件、数据库、或内存中都可以。

四http 与RPC

无论是微服务还是分布式服务(都是SOA,都是面向服务编程),都面临着服务间的远程调用。那么服务间的远程调用方式有哪些呢?

常见的远程调用方式有以下几种:

  • RPC:Remote Produce Call远程过程调用,类似的还有RMI(Remote Methods Invoke 远程方法调用,是JAVA中的概念,是JAVA十三大技术之一)。自定义数据格式,基于原生TCP通信,速度快,效率高。早期的webservice,现在热门的dubbo,都是RPC的典型

    • RPC的框架:webservie(cxf)、dubbo
    • RMI的框架:hessian
  • Http:http其实是一种网络传输协议,基于TCP,规定了数据传输的格式。现在客户端浏览器与服务端通信基本都是采用Http协议。也可以用来进行远程服务调用。缺点是消息封装臃肿

    现在热门的Rest风格,就可以通过http协议来实现。

    • http的实现技术:HttpClient
  • 相同点:底层通讯都是基于socket,都可以实现远程调用,都可以实现服务调用服务

  • 不同点:
    RPC:框架有:dubbo、cxf、(RMI远程方法调用)Hessian
    当使用RPC框架实现服务间调用的时候,要求服务提供方和服务消费方 都必须使用统一的RPC框架,要么都dubbo,要么都cxf

    跨操作系统在同一编程语言内使用(方言)
    优势:调用快、处理快

    http:框架有:httpClient
    当使用http进行服务间调用的时候,无需关注服务提供方使用的编程语言,也无需关注服务消费方使用的编程语言,服务提供方只需要提供restful风格的接口,服务消费方,按照restful的原则,请求服务,即可

    跨系统跨编程语言的远程调用框架(普通话)
    优势:通用性强

    总结:对比RPC和http的区别
    1 RPC要求服务提供方和服务调用方都需要使用相同的技术,要么都hessian,要么都dubbo
    而http无需关注语言的实现,只需要遵循rest规范
    2 RPC的开发要求较多,像Hessian框架还需要服务器提供完整的接口代码(包名.类名.方法名必须完全一致),否则客户端无法运行
    3 Hessian只支持POST请求
    4 Hessian只支持JAVA语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值