URI与URL有什么不同呢?

URI:Universal Resource Identifier统一资源标志符

URL:Universal Resource Locator统一资源定位器

URI是用来唯一地确定资源的表示方式,只要资源能唯一确定,则可以算作一种URI

URL是用定位的方式来确定资源的表示方式,比如常见的http://www.google.com

所以URL是URI的子集

在HTTP/1.0中,每个TCP连接只能发送一个请求,一旦服务器回应,则连接关闭,称为短连接。

然而新建TCP连接开销很大,需要三次握手,并且开始发送时速率较慢(slow start),所以在HTTP/1.0中,效率较差。

为了解决这个问题,在HTTP/1.0中加了一个非标准字段:

Connection: keep-alive

直到服务器或者客户端主动关闭连接,才关闭TCP,称之为长连接。

在HTTP/1.1中,引入了持久连接,不用显式声明Connection,TCP连接默认不关闭。

当客户端发送:

Connection: close

或者客户端和服务器在一段时间内没有活动,则关闭TCP连接。

管道(pipelining)机制:

基于持久连接,管道机制允许客户端并行发送多个请求,而不需要客户端发送一个请求,服务器响应这个请求之后,才能发送下一个请求。

HTTP是无状态(stateless)的,不对请求和响应之间的状态进行保存,不保存之前一切的请求和响应信息。

通过使用Cookie技术,可以保存状态:

服务器端在响应报文中创建Set-Cookie字段,通知客户端保存Cookie。

下一次客户端发送请求时,会在请求报文中加入Cookie再发送出去。

服务器根据客户端发来的Cookie,通过查询比对,得知之前的状态信息。

HTTP协议----URI,URL,持久连接,管道与Cookie的更多相关文章

  1. HTTP协议学习笔记---HTTP持久连接和如何正确地关闭HTTP连接

    一,持久连接 什么是持久连接?对于HTTP协议而言,它是基于请求响应模型,Client向Server发请求时,先建立一条HTTP连接,Server给Client响应数据后,连接关闭. 当Client发 ...

  2. WebSocket 是什么原理?为什么可以实现持久连接?

    https://www.zhihu.com/question/20215561   作者:Ovear链接:https://www.zhihu.com/question/20215561/answer/ ...

  3. ASP.NET SignalR2持久连接层解析

    越是到年底越是感觉浑身无力,看着啥也不想动,只期盼着年终奖的到来以此来给自己打一针强心剂.估摸着大多数人都跟我一样犯着这样浑身无力的病,感觉今年算是没挣到啥钱,但是话也不能这么说,搞得好像去年挣到钱了 ...

  4. 406 UDP协议是面向非连接的协议

    HTTP The Definitive Guide   Table 3-1. Common HTTP methods   Method Description Message body?   GET ...

  5. http协议与url简介(转)

    一 知识简介 HTTP:(Hypertext transfer protocol)超文本传输协议,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议. URL ...

  6. 【转】WebSocket 是什么原理?为什么可以实现持久连接?

    WebSocket是HTML5出的东西 也就是说HTTP协议没有变化 但HTTP是不支持持久连接的(长连接,循环连接的不算)或者说WebSocket干脆就不是基于HTTP来执行的.但是...说不通啊. ...

  7. WebSocket是什么原理,为什么可以实现持久连接

    本文摘抄自知乎,原文标题:WebSocket 是什么原理?为什么可以实现持久连接? Websocket只是协议而已. 一.WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化, ...

  8. 406 UDP协议是面向非连接的协议 Keep-Alive

    HTTP The Definitive Guide   Table 3-1. Common HTTP methods   Method Description Message body?   GET ...

  9. WebSocket是什么原理?为什么可以实现持久连接?

    作者:Ovear 链接:https://www.zhihu.com/question/20215561/answer/40316953来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

随机推荐

  1. java中final和static

    final的意思是最终的,最后的额,不可变的,在java中也具有相似的含义. final修饰基础数据表示把该数据修饰成常量,意味着不可修改,不可变. final修饰对象的引用的时候,表示该引用不可变, ...

  2. .Net+SQL Server企业应用性能优化笔记—精确查找瓶颈

    首先我们需要部署一个测试环境,将Web项目的源代码拷到测试环境Web服务器IIS上,使得可以直接通过IE访问我们的网站.SQL Server环境可以部署在同一台机器上,条件允许的话有专门的数据库测试服 ...

  3. JavaScript的几种常见的创建方式

    1.通过Object构造函数或者对象字面量创建单个对象 使用字面量方法创建对象:var stut = {name: "张三"}; 使用内置构造函数创建对象:var stu = ne ...

  4. 物联网框架ServerSuperIO在.NetCore实现跨平台的实践路线

    正所谓天下大势,不跟风不行.你不跨平台,很low嘛.java说:你们能跨嘛,跨给我看看.C#说:不要强人所难嘛.java说:能部署在云上吗?docker?微服务?C#说:不要强人所难嘛.java说:你 ...

  5. Shell 的特殊变量

    2017-08-02 1.$0 获取当前脚本的名称或全路径 cat name.sh Linux shell sh name.sh echo $0 name.sh 2.$n(n >=1) 获取脚本 ...

  6. Struts2【配置】知识要点

    前言 上篇Struts博文已经讲解了Struts的开发步骤以及执行流程了.....对Struts的配置文件有了了解.....本博文继续讲解Struts在配置的时候一些值得要学习的细节... 通配符 为 ...

  7. Docker学习——Lepus部署

    Lepus部署(基于docker)及mysql慢查询配置 介绍 Lepus是一个由Python+PHP开发的数据库企业级监控系统,可用于MySQL/Oracle/MongoDB/Redis 下载镜像 ...

  8. 【BZOJ2442】修建草坪(动态规划,单调队列)

    [BZOJ2442]修建草坪(动态规划,单调队列) 题面 权限题..洛谷 题解 设\(f[i]\)表示前\(i\)个里面选出来的最大值 转移应该比较显然 枚举一个断点的位置,转移一下就好 \(f[i] ...

  9. 【NOIP2015】子串(动态规划)

    题目戳我 题解 很简单的一道题... 看来那时候还是我太菜了... 设f[i][j][k][0/1]表示在第一个串中的位置i,匹配到了位置j,一共分了k段,0/1表示上一个位置是否在某一段中 转移就很 ...

  10. ubuntu14.04上面安装ia32-libs

    sudo -i cd /etc/apt/sources.list.d echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main ...