美文网首页
HTTP(一)

HTTP(一)

作者: 倚仗听江 | 来源:发表于2020-08-29 14:45 被阅读0次

    1. HTTP原理

    http请求封装在应用层数据包中,再封装到tcp数据包中,再封装到ip数据包中,再封装到以太网数据包中,如果过大,可能会拆成几个包,走以太网协议 + 交换机,经过广播网关到目标机器,再一层一层的拆包,得到http请求报文传递给tomcat,返回一个http响应报文按原路径回去。

    2. http 1.0、1.1、2.0

    1. http1.0默认是短连接的,若要开启长连接则要指定keep-alive,浏览器每次请求都要建立一次tcp连接,结束了就释放tcp连接。
    2. http1.1默认支持长连接,浏览器第一次去请求一个网站的一个页面的时候,就会打开tcp连接,接着一段时间都不关闭。
    • 短连接
      连接->传输数据->关闭连接
    • 长连接
      连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。
    1. http2.0支持多路复用,基于一个tcp连接并行发送多个请求和接受响应。

    3. HTTP和HTTPS的区别

    • https协议需要到ca(电子认证服务)申请证书,一般免费证书较少,因而需要一定费用。
    • http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
    • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    • http的连接很简单,是无状态的;HTTPS协议是由SSL(Secure Sockets Layer 安全套接字协议)+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

    4. Cookie Session 的比较

    • 存储位置:cookie在客户端浏览器上,session在服务器上。
    • 服务器压力:cookie保存在客户端,不需要消耗服务器资源,session会消耗大量的内存。
    • 存储容量:单个cookie保存的数据<=4kb,一个站点最多存储20个cookie,session一般来说没有上限。
    • 隐私策略:cookie对客户端可见,不安全,session对用户透明,不存在信息泄露的风险。
    • 有效时间:cookie长期有效,session关闭窗口就会失效,达不到长期有效的效果。
    • 跨域支持:cookie支持跨域名访问,session不支持。

    5. GET/POST以及幂等性

    HTTP幂等方法,是指无论调用这个URL多少次,都不会有不同的结果的HTTP方法。值得注意,幂等性指的是作用于结果而非资源本身。可能某个方法可能每次会得到不同的返回内容,但并不影响资源,这样的也满足幂等性,例如get服务器当前时间。

    HTTP GET方法

    • 用于获取资源,不管调用多少次接口,结果都不会改变,所以是幂等的。
    • 若接口用于获取当前时间,它获取的是服务器当前时间,本身不会对资源产生影响,因此满足幂等性
    • 把参数包含在URL中,不安全,传送的参数是有长度限制的
      HTTP POST方法
    • POST是一个非幂等方法,它会对资源本身产生影响,每次调用都会有新的资源产生,因此不满足幂等性
    • 通过request body传递参数,参数长度没有限制,更加安全。

    相关文章

      网友评论

          本文标题:HTTP(一)

          本文链接:https://www.haomeiwen.com/subject/tctjsktx.html