栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

HTTP1.0和HTTP1.1

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HTTP1.0和HTTP1.1

什么是HTTP?

http是一个超文本传输协议,它是基于TCP协议的应用层传输协议,简单点说就是客户端和服务端进行数据传输的一种规则。
http是一个无状态协议,它本身不会对发送过得请求和响应的通信状态进行持久化处理。这样做的目的是为了保持http协议的简单性,从而能够快速处理大量的事务,提高效率。

一个HTTP请求包括三个组成部分:

1.统一资源标识符(URI)
2.请求的头部(request header)
3.主体内容 (request body)

一个标准的HTTP请求:

1、GET /index.html HTTP/1.1
2、Host: 127.0.0.1:8000
3、User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0
4、Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
5、Accept-Language:
zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
6、Accept-Encoding: gzip, deflate
7、Connection: keep-alive
8、Upgrade-Insecure-Requests: 1
9、空行

HTTP响应包括三部分:

1.方法一统一资源标识符号(URI)协议/版本
2.响应的头部
3.主体内容

一个标准的HTTP响应:

服务器 —> 发给 —> 浏览器。主旨内容包含 4 部分:
状态行: 包括 http 协议版本号, 状态码, 状态信息
消息报头: 说明客户端要使用的一些附加信息
空 行: 必须!
响应正文: 服务器返回给客户端的文本信息 以下是经服务器按照 http 协议,写回给浏览器的内容举例,1~9 行是协议头部分。注 意:9 行rn 的空行不可忽略

  1. HTTP/1.1 200 Ok
  2. Server: xhttpd
  3. Date: Fri, 18 Jul 2014 14:34:26 GMT
  4. Content-Type: text/plain; charset=iso-8859-1 (必选项) ->内容类型,定义网络文件的类型和编码
  5. Content-Length: 32 ( 要么不写 或者 传-1, 要写务必精确 ! ) ->HTTP的信息长度
  6. Content-Language: zh-CN
  7. Last-Modified: Fri, 18 Jul 2014 08:36:36 GMT
  8. Connection: close ->连接状态
  9. 空行
两者之间的一些区别

1、HTTP 1.1 支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点。

2.、HTTP 1.1 增加host字段
在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。

3、100状态码(节约带宽)
HTTP/1.1加入了一个新的状态码100(Continue)。客户端事先发送一个只带头域的请求,如果服务器因为权限拒绝了请求,就回送响应码401(Unauthorized);如果服务器接收此请求就回送响应码100,
客户端就可以继续发送带实体的完整请求了。100 (Continue) 状态代码的使用,允许客户端在发request消息body之前先用request header试探一下server,看server要不要接收request body,再决定要不要发request body。
4、HTTP/1.1中引入了Chunked transfer-coding来解决上面这个问题,发送方将消息分割成若干个任意大小的数据块,每个数据块在发送时都会附上块的长度,最后用一个零长度的块作为消息结束的标志。这种方法允许发送方只缓冲消息的一个片段,避免缓冲整个消息带来的过载。
5、HTTP/1.1在1.0的基础上加入了一些cache的新特性,当缓存对象的Age超过Expire时变为stale对象,cache不需要直接抛弃stale对象,而是与源服务器进行重新激活(revalidation)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1003317.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号