TCP/IP(应用层)

1.HTTP简介
参考链接

https://www.cnblogs.com/gofighting/p/5421890.html

HTTP1.0和HTTP1.1
HTTP目前三个版本:HTTP0.9、HTTP1.0、HTTP1.1
http1.0应用最广泛,
http1.1增加了大量报头域,并对1.0的部分定义进行了补充说明。

HTTP1.0和HTTP1.1的区别
1、HTTP1.1支持长连接和请求的流水线处理

HTTP1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。

HTTP 1.1则支持**持久连接**Persistent Connection, 并且默认使用persistent connection. 在同一个tcp的连接中可以传送多个HTTP请求和响应. 多个请求和响应可以重叠,多个请求和响应可以同时进行. 更加多的请求头和响应头(比如HTTP1.0没有host的字段).
在1.0时的会话方式:
1. 建立连接
2. 发出请求信息
3. 回送响应信息
4. 关掉连接

HTTP1.1的持续连接,需要增加新的请求头来帮助实现,例如,Connection请求头的值为Keep-Alive时,客户端通知服务器返回本次请求结果后保持连接;Connection请求头的值为close时,客户端通知服务器返回本次请求结果后关闭连接。
HTTP1.1还提供了与身份认证、状态管理和Cache缓存等机制相关的请求头和响应头。

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

3、100(Continue) Status(节约带宽)
HTTP/1.1加入了一个新的状态码100(Continue)。客户端事先发送一个只带头域的请求,如果服务器因为权限拒绝了请求,就回送响应码401(Unauthorized);如果服务器接收此请求就回送响应码100,客户端就可以继续发送带实体的完整请求了。100 (Continue) 状态代码的使用,允许客户端在发request消息body之前先用request header试探一下server,看server要不要接收request body,再决定要不要发request body。
HTTP状态码
用来表示网页HTTP响应状态的三位数字代码:
比如100,101,102(1.1才开始);200,201,202;300,301,302;

这里写图片描述

301永久定向
302暂时重定向
304客户端已经执行了GET,但文件未变化

猜你喜欢

转载自blog.csdn.net/alexhu2010q/article/details/80888561