Java面试题【TCP与HTTP篇】
-
- 1. http1.0和http1.1有什么区别
- 2. TCP三次握手和四次挥手的流程,为什么断开连接要4次,如果握手只有两次,会出现什么
- 3. TIME_WAIT和CLOSE_WAIT的区别
- 4. 说说你知道的几种HTTP响应码,比如200, 302, 404
- 5. 当你用浏览器打开一个链接(如:http://www.javastack.cn)的时候,计算机做了哪些工作步骤
- 6. 如何避免浏览器缓存
- 7. 如何理解HTTP协议的无状态性
- 8. 简述Http请求get和post的区别以及数据包格式
- 9. HTTP有哪些method
- 10. 简述HTTP请求的报文格式
- 11. HTTPS的加密方式是什么,讲讲整个加密解密流程
- 12. 什么是分块传送
- 13. Session和cookie的区别
- 14. TCP粘包和拆包产生的原因和解决策略
- 15. URI与URL的区别
- 16. http与HTTPS的区别
1. http1.0和http1.1有什么区别
(1)HTTP 1.0只支持短连接而HTTP 1.1支持持久连接
HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。
HTTP 1.1支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。一个包含有许多图像的网页文件的多个请求和应答可以在一个连接中传输,但每个单独的网页文件的请求和应答仍然需要使用各自的连接。
(2)HTTP 1.1增加host字段
在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。
HTTP1.1在Request消息头里头多了一个Host域,比如:
GET /pub/WWW/TheProject.html HTTP/1.1
Host: www.w3.or