Http方法
GET 从服务器获取一份文档
HEAD 只从服务器获取一份文档的首部
PUT 向服务器发送需要处理的数据
POST 将请求的主体部分存储在服务器上
TRACE 对可能经过代理服务器传送到服务器上去的报文进行追踪
OPTIONS 查询可在服务器上可执行的方法
DELETE 从服务器上删除一份文档
请求报文格式
<method> <request-URL> <version>
<headers>
<entity-body>
GET /test/hello.text HTTP/1.1
Accept:text/*
Host:www.joes-hardware.com
响应报文格式
<version> <status> <reason-message>
<headers>
<entity-body>
HTTP/1.0 200 OK
Content-Type:text/plain
Content-Length:13
Hello,world!
响应状态码
信息状态码(100-199)
成功状态码(200-299)
重定向状态码(300-399)
301(Moved PerPermanently):请求资源已被永久移除。响应Location首部包含资源现在所处URL
302(Found):与301状态类似。响应Location首部包含资源现在所处的临时URL。将来的请求仍使用老的URL
304(Not Modified):资源最近未被修改
305(Use Proxy):说明必须通过代理来访问资源,代理的位置由Location首部给出
客户端状态码(400-499)
400(Bad Request):错误的请求
401(Unauthorized):在获取资源访问权限前需对自己进行认证,
403(Forbidden):请求被服务器拒绝
404(Not Found):服务器无法找到锁请求的资源
服务器错误状态码(500-599)
500:(Internal Server Error):服务器遇到妨碍它为请求服务的错误
502:(Bad Gateway):代理或者网关服务器从请求响应链的下一链路收到一条伪响应
503(Service Unavailable):服务不可用,但将来可以。如果服务器知道将来何时可用则在响应首部Retry-After给出
504(Gateway Timeout):代理或者网关等待另一服务响应时超时
时延
tcp握手时延
tcp拥塞控制慢启动时延
数据聚集的Nagle算法
捎带确认的tcp延迟确认算法
time_wait时延与端口耗尽
持久连接
Http/1.0 Keep-Alive 连接
通过首部字段Connection:Keep-Alive显式开启,响应包含Connection:Keep-Alive表明服务器支持持久连接
实体主体部分长度与首部字段Content-Length一致或者使用分块传输,连接才能长久保持
代理和网关必须执行Connection首部规则,并且在将报文转发出去或者高速缓存之前删除Connection首部及相关字段
Keep-Alive首部设置持久连接行为
time-out:请求服务器将连接保持活跃时间
max:服务器为多少事务保持连接活跃
Http/1.1 persistent连接
Http/1.1持久连接默认开启,关闭需要显式声明Connection:close
实体主体部分长度与首部字段Content-Length一致或者使用分块传输,连接才能长久保持
Http/1.1代理必须能够分别管理与客户端或者服务器的持久连接,每个持久连接都只适用于一条传输
Content-Length
分块传输
代理
web缓存
反向代理
负载均衡
代理认证
Via首部
Via首部列了请求途径的每个中间节点(代理或者网关)的信息,用于记录报文转发,诊断报文循环,标示请求/响应链上所有发送者的协议能力
缓存
文档过期
通过特定的HTTP首部标示文档的过期时间,再文档过期之前缓存可以任意频率使用缓存而无需与服务器联系1. Expires首部(HTTP1.0+)--指定文档过期绝对时间;2. Catch-Control首部(HTTP1.1)-- 指定文档过期相对时间
Catch-Control首部
- no-store:禁止缓存对响应进行复制
- no-catch:响应可存储在缓存区,但在再次使用副本前需进行缓存再验证,不论缓存是否过期
- max-age:表示从服务器传来文档之时起文档处于新鲜状态的时间
- must-revalidate:文档过期后需要再验证资源副本
缓存再验证
缓存服务器通过添加特定首部GET请求资源服务器进行缓存再验证。响应通常分为以下3种:
1.304 Not Modified -- 再验证命中,服务器对象未被修改
2.200 OK -- 再验证未命中,说明服务器对象与缓存副本不同
3.404 Not Found -- 资源被删除,服务器对象已被删除,此时缓存也会将副本删除
- If-Modified-Since:Date再验证
- If-None-Modified:实体标签再验证
http1.0与http1.1的区别
http1.*与http2.0的区别
cookie和session的区别
Tomcat中session的实现
http与https的区别
HTTPS的传输过程
客户端发起 HTTPS 请求,服务端返回证书,客户端对证书进行验证,验证通过后本地生成用于改造对称加密算法的随机数,通过证书中的公钥对随机数进行加密传输到服务端,服务端接收后通过私钥解密得到随机数,之后的数据交互通过对称加密算法进行加解密
https中rsa加密在哪一阶段
https中数字签名作用
防止”中间人“攻击,同时可以为网站提供身份证明
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。