HTTP协议----URI,URL,持久连接,管道与Cookie
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的更多相关文章
- HTTP协议学习笔记---HTTP持久连接和如何正确地关闭HTTP连接
一,持久连接 什么是持久连接?对于HTTP协议而言,它是基于请求响应模型,Client向Server发请求时,先建立一条HTTP连接,Server给Client响应数据后,连接关闭. 当Client发 ...
- WebSocket 是什么原理?为什么可以实现持久连接?
https://www.zhihu.com/question/20215561 作者:Ovear链接:https://www.zhihu.com/question/20215561/answer/ ...
- ASP.NET SignalR2持久连接层解析
越是到年底越是感觉浑身无力,看着啥也不想动,只期盼着年终奖的到来以此来给自己打一针强心剂.估摸着大多数人都跟我一样犯着这样浑身无力的病,感觉今年算是没挣到啥钱,但是话也不能这么说,搞得好像去年挣到钱了 ...
- 406 UDP协议是面向非连接的协议
HTTP The Definitive Guide Table 3-1. Common HTTP methods Method Description Message body? GET ...
- http协议与url简介(转)
一 知识简介 HTTP:(Hypertext transfer protocol)超文本传输协议,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议. URL ...
- 【转】WebSocket 是什么原理?为什么可以实现持久连接?
WebSocket是HTML5出的东西 也就是说HTTP协议没有变化 但HTTP是不支持持久连接的(长连接,循环连接的不算)或者说WebSocket干脆就不是基于HTTP来执行的.但是...说不通啊. ...
- WebSocket是什么原理,为什么可以实现持久连接
本文摘抄自知乎,原文标题:WebSocket 是什么原理?为什么可以实现持久连接? Websocket只是协议而已. 一.WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化, ...
- 406 UDP协议是面向非连接的协议 Keep-Alive
HTTP The Definitive Guide Table 3-1. Common HTTP methods Method Description Message body? GET ...
- WebSocket是什么原理?为什么可以实现持久连接?
作者:Ovear 链接:https://www.zhihu.com/question/20215561/answer/40316953来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...
随机推荐
- freemarker写select组件(二十二)
一,讲解一 1.宏定义 <#macro select id datas> <select id="${id}" name="${id}"> ...
- @SuppressWarnings("unchecked")(解决标准的后台HttpServletRequest request, HttpServletResponse response)格式
在springmvc的应用中有些限制会出现必须是 public void save(HttpServletRequest request, HttpServletResponse response) ...
- layer与iframe 间值的相互传递
在A页添加 <input id="handle_status" value="" hidden="hidden"> jq代码 l ...
- 【BZOJ3143】游走(高斯消元,数学期望)
[BZOJ3143]游走(高斯消元,数学期望) 题面 BZOJ 题解 首先,概率不会直接算... 所以来一个逼近法算概率 这样就可以求出每一条边的概率 随着走的步数的增多,答案越接近 (我卡到\(50 ...
- 【BZOJ4652】【NOI2016】循环之美(莫比乌斯反演,杜教筛)
[BZOJ4652]循环之美(莫比乌斯反演,杜教筛) 题解 到底在求什么呢... 首先不管他\(K\)进制的问题啦,真是烦死啦 所以,相当于有一个分数\(\frac{i}{j}\) 因为值要不相等 所 ...
- 【BZOJ1585】【Luogu2944】地震损失2(网络流)
[BZOJ1585][Luogu2944]地震损失2(网络流) 题面 题目描述 Wisconsin has had an earthquake that has struck Farmer John' ...
- [SCOI2016]美味
按位从高往低贪心,枚举到第i位,只需要判断这2^i长度的区间是否有菜,用主席树就可以了 # include <bits/stdc++.h> # define RG register # d ...
- 第二章 js数据类型和变量
一.驼峰命名法 第一个单词首字母大写,如果有多个单词的话其他的单词首字母大写. eg:nickName 二.prototype现象 新的命名规范. 常用的:以下划线为首字母(变量为对象的私有成员变量) ...
- Git基本命令 -- 创建Git项目
在这里下载git:https://git-scm.com/ 安装的时候, 如果是windows系统的话, 可以勾选unix的命令行工具, 这样在windows命令行下会多出很多命令, 例如ls. Gi ...
- 论文笔记(5):Fully Convolutional Multi-Class Multiple Instance Learning
这篇论文主要介绍了如何使用图片级标注对像素级分割任务进行训练.想法很简单却达到了比较好的效果.文中所提到的loss比较有启发性. 大体思路: 首先同FCN一样,这个网络只有8层(5层VGG,3层全卷积 ...