1.http的长连接和短连接
http 有HTTP/1.0和HTTP/1.1两个版本。
HTTP/1.1默认保持长链接,数据传输完成了保持TCP连接不断开(不发RST包,不四次挥手),等待在同域名下继续用这个通道传输数据;相反的就是短连接
长连接:
短连接:
jdbc数据库连接池的Connection连接为短连接,使用数据池连接为长连接。
2.HTTP的请求方法
- get方法
- 对数据长度有限制,因为get方法的请求数据都在url中,而url的长度是有限制的(2048字符长度)
- 数据类型:只允许ASCII字符
- 安全性:get方法的发送的数据都是在url中时可见的,是不安全的,且参数会被缓存到浏览器中 - post方法
- 对数据长度没有限制,因为get方法的请求数据可以在url中也可以在请求体中
- 数据类型:无限制
- 安全性:安全的,数据不会显示在url中,参数不会被缓存到浏览器 - 其他方法
PUT:向指定资源位置上传其最新内容。
DELETE:请求服务器删除 Request-URI 所标识的资源。
HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
HTTP常见请求头参数
- Content-type:请求的数据类型或返回的数据类型
- Content-Length:Body数据长度
- host:请求的资源所在主机
- User-Agent:用户的操作系统和浏览器版本信息
- refer:当前页面是从哪个页面跳转来的
- Location:一般搭配3XX状态码使用,告诉客户端接下来要访问哪里
- cookie:存储客户端的一些信息,sessionId等信息用于实现会话功能
HTTP常见状态码
- 2XX:成功,操作被成功接收且处理
- 200 OK:表示从客户端发送给服务器的请求被正常处理并返回
- 204 No Content:表示客户端发送给客户端的请求得到了成功处理,但在返回的响应报文中不含实体的主体部分(没有资源可以返回)
- 206 Patial Content:表示客户端进行了范围请求,并且服务器成功执行了这部分的GET请求,响应报文中包含由Content-Range指定范围的实体内容。
- 3XX:重定向
- 301 永久性重定向:表示请求的资源已被永久移动到新URI,返回信息会包括新的URL,浏览器会自动定向到新的URI,之后任何新的请求都应使用新的URI代替
- 302 临时移动:与301类似,但资源只是临时被移动。
- 307 临时重定向:与302类似,使用get请求重定向
- 304 未修改:所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。
- 4XX
- 400 Bad Request:客户端请求的语法错误,服务器无法理解
- 401 Unauthorized:请求要求用户的身份认证
- 403 Forbidden:服务器理解客户端请求,但是拒绝执行此请求(用户权限不足)
- 404 Not Found:服务器无法根据客户端的请求找到资源。
- 404 客户端请求方法被禁止
- 5XX
- 500 Internal Server Error :服务器内部错误,无法完成请求
- 502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
- 503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求
- 504 Gateway Time-out 充当网关或代理的服务器,未及时从远端服务器获取请求
转发和重定向的区别
cookie和session区别
cookie和session的区别
Cookie 是 web 服务器发送给浏览器的一块信息,浏览器会在本地一个文件中给每个 web 服务器存储 cookie。
以后浏览器再给特定的 web 服务器发送请求时,同时会发送所有为该服务器存储的 cookie。
Session 是存储在 web 服务器端的一块信息。 session 对象存储特定用户会话所需的属性及配置信息。当用户在
应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
Cookie 和 session 的不同点:
1、无论客户端做怎样的设置, session 都能够正常工作。当客户端禁用 cookie 时将无法使用 cookie。
2、在存储的数据量方面: session 能够存储任意的 java 对象, cookie 只能存储 String 类型的对象