HTTP 请求报文
HTTP方法 Get与Post区别
HTTP状态码
1XX 信息
-
100 Continue :表明到目前为止都很正常,客户端可以继续发送请求或者忽略这个响应。
2XX 成功
-
200 OK
-
204 No Content :请求已经成功处理,但是返回的响应报文不包含实体的主体部分。一般在只需要从客户端往服务器发送信息,而不需要返回数据时使用。
-
206 Partial Content :表示客户端进行了范围请求。响应报文包含由 Content-Range 指定范围的实体内容。
3XX 重定向
-
301 Moved Permanently :永久性重定向
-
302 Found :临时性重定向
-
303 See Other :和 302 有着相同的功能,但是 303 明确要求客户端应该采用 GET 方法获取资源。
-
304 Not Modified :如果请求报文首部包含一些条件,例如:If-Match,If-ModifiedSince,If-None-Match,If-Range,If-Unmodified-Since,如果不满足条件,则服务器会返回 304 状态码。
4XX 客户端错误
-
400 Bad Request :请求报文中存在语法错误。
-
401 Unauthorized :该状态码表示发送的请求需要有认证信息(BASIC 认证、DIGEST 认证)。如果之前已进行过一次请求,则表示用户认证失败。
-
403 Forbidden :请求被拒绝,服务器端没有必要给出拒绝的详细理由。
-
404 Not Found
5XX 服务器错误
-
500 Internal Server Error :服务器正在执行请求时发生错误。
-
501 Not Implemented :服务器不支持请求的功能,无法完成请求。
-
503 Bad Gateway:网关错误。
-
503 Service Unavilable :服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。
HTTP各版本
HTTP/1.0 与 HTTP/1.1 的区别
-
HTTP/1.1 默认是持久连接
-
HTTP/1.1 支持管线化处理
-
HTTP/1.1 支持虚拟主机
-
HTTP/1.1 新增状态码 100
-
HTTP/1.1 只是分块传输编码
-
HTTP/1.1 新增缓存处理指令 max-age
HTTP/1.1 与 HTTP/2.0 的区别
1. 多路复用: HTTP/2.0 使用多路复用技术,使用同一个 TCP 连接来并行处理多个请求。
2. 首部压缩:HTTP/1.1 的首部带有大量信息,而且每次都要重复发送。HTTP/2.0 要求通讯双方各自缓存一份首部字段表,从而避免了重复传输。
3. 服务端推送:在客户端请求一个资源时,会把相关的资源一起发送给客户端,客户端就不需要再次发起请求了。例如客户端请求 index.html 页面,服务端就把 index.js 一起发给客户端。
4. 二进制格式:HTTP/1.1 的解析是基于文本的,而 HTTP/2.0 采用二进制格式。
Cookie和Session区别
1、存储位置不同
cookie的数据信息存放在客户端浏览器上;session的数据信息存放在服务器上。
2、存储容量不同
单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie。对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。
3、存储方式不同
cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据。session中能够存储任何类型的数据。
4、隐私策略不同
cookie对客户端是可见的,可以通过分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。session存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。
5、有效期上不同
开发可以通过设置cookie的属性,达到使cookie长期有效的效果。session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。
6、服务器压力不同
cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择。session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。
7、跨域支持上不同
cookie不支持跨域名访问。session支持。