一.HTTP状态码
200 - OK,服务器成功返回网页
301 - Moved Permanently(永久跳转),请求的网页已永久跳转到新位置。
403 - Forbidden(禁止访问),服务器拒绝请求
404 - Not Found,服务器找不到请求的页面。
500 - Internal Server Error(内部服务器错误)
502 - Bad Gateway(坏的网关),一般是网关服务器请求后端服务时,后端服务没有按照http协议正确返回结果。
503 - Service Unavailable(服务当前不可用),可能因为超载或停机维护。
504 - Gateway Timeout(网关超时),一般是网关服务器请求后端服务时,后端服务没有在特定的时间内完成服务。
二.HTTP请求方式
1、opions 返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户端查看服务器性能)
2、Get 向特定资源发出请求(请求指定页面信息,并返回实体主体)
3、Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改
4、Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)
5、Head 与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)
6、Delete 请求服务器删除request-URL所标示的资源*(请求服务器删除页面)
7、Trace 回显服务器收到的请求,用于测试和诊断
8、Connect HTTP/1.1协议中能够将连接改为管道方式的代理服务器
http服务器至少能实现get、head、post方法,其他都是可选的
三.幂等性
幂等性,英文是idempotent,读作[aɪ’dɛmpətənt]。
“Methods can also have the property of “idempotence” in that the side-effects of N > 0 identical requests is the same as for a single request.”
即,如果一个方法重复执行多次,产生的效果是一样的,那么这个方法就是幂等的。
四.GET和POST区别
五.HTTP1.0 HTTP1.1 HTTP2.0,这三个有什么区别及其改进
HTTP1.0 对比 HTTP1.1:
1.更多的缓存处理策略
2.带宽优化,支持断点续传
3.新增错误通知
4.HOST头处理,应对同一IP有多个主机
5.支持长连接和流水线处理
HTTP 2.0:新的二进制格式(Binary Format),HTTP1.x的解析是基于文本。而用二进制格式实现方便且健壮。
多路复用(MultiPlexing),即连接共享,即每一个request都是是用作连接共享机制的。一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面。
header压缩,如上文中所言,对前面提到过HTTP1.x的header带有大量信息,而且每次都要重复发送,HTTP2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。
服务端推送(server push),同SPDY一样,HTTP2.0也具有server push功能。
六.HTTP如何实现状态化,cookie被禁用了怎么办
- URL重写
- 隐藏表单域
- cookie
- session机制
七.HTTPS
将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用这个密钥通过对称加密来进行沟通。
详细步骤:
- 客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
- Web服务器收到客户端请求后,会生成一对公钥和私钥,并把公钥放在证书中发给客户端浏览器。
- 客户端浏览器根据双方同意的SSL连接的安全等级,建立会话密钥,然后用公钥将会话密钥加密,并传送给服务器。
- Web服务器用自己的私钥解密出会话密钥。
- Web服务器利用会话密钥加密与客户端之间的通信。
八.HTTP请求头部常用字段