1、HTTP协议1.0_1.1_2.0
HTTP1.0:服务器处理完成后立即断开TCP连接(无连接),服务器不跟踪每个客户端也不记录过去的请求(无状态)
HTTP1.1:KeepAlived长连接避免了连接建立和释放的开销;通过Content-Length来判断当前请求数据是否已经全部接受(有状态)
HTTP2.0:引入二进制数据帧和流的概念,其中帧对数据进行顺序标识;因为有了序列,服务器可以并行的传输数据。
http1.0和http1.1的主要区别如下:
1、缓存处理:1.1添加更多的缓存控制策略(如:Entity tag,If-Match)
2、网络连接的优化:1.1支持断点续传
3、错误状态码的增多:1.1新增了24个错误状态响应码,丰富的错误码更加明确各个状态
4、Host头处理:支持Host头域,不在以IP为请求方标志
5、长连接:减少了建立和关闭连接的消耗和延迟。
http1.1和http2.0的主要区别:
1、新的传输格式:2.0使用二进制格式,1.0依然使用基于文本格式
2、多路复用:连接共享,不同的request可以使用同一个连接传输(最后根据每个request上的id号组合成正常的请求)
3、header压缩:由于1.X中header带有大量的信息,并且得重复传输,2.0使用encoder来减少需要传输的hearder大小
4、服务端推送:同google的SPDUY(1.0的一种升级)一样
2、HTTP与HTTPS之间的区别
HTTP | HTTPS |
---|---|
默认端口80 | HTTPS默认使用端口443 |
明文传输、数据未加密、安全性差 | 传输过程ssl加密、安全性较好 |
响应速度快、消耗资源少 | 响应速度较慢、消耗资源多、需要用到CA证书 |
3、Get和Post请求区别
HTTP请求:
方法 | 描述 |
---|---|
GET | 向特定资源发送请求,查询数据,并返回实体 |
POST | 向指定资源提交数据进行处理请求,可能会导致新的资源建立、已有资源修改 |
PUT | 向服务器上传新的内容 |
HEAD | 类似GET请求,返回的响应中没有具体的内容,用于获取报头 |
DELETE | 请求服务器删除指定标识的资源 |
OPTIONS | 可以用来向服务器发送请求来测试服务器的功能性 |
TRACE | 回显服务器收到的请求,用于测试或诊断 |
CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器 |
get和Post区别:
1)get
可见性: 数据在URL中对所有人可见 数据不会显示在URL中
安全性: 与post相比,get的安全性较差,因为所发送的数据是URL的一部分
数据长度:受限制,最长2kb
编码类型:application/x-www-form-urlencoded
缓存:能被缓存
2)post
可见性: 数据不会显示在URL中
安全性: 安全,因为参数不会被保存在浏览器历史或web服务器日志中
数据长度:无限制
编码类型:multipart/form-data
缓存:不能被缓存
4、HTTP常见响应状态码
100:Continue — 继续。客户端应继续其请求。
200:OK — 请求成功。一般用于GET与POST请求。
301:Moved Permanently — 永久重定向。
302:Found — 暂时重定向。
400:Bad Request — 客户端请求的语法错误,服务器无法理解。
403:Forbideen — 服务器理解请求客户端的请求,但是拒绝执行此请求。
404:Not Found — 服务器无法根据客户端的请求找到资源(网页)。
500:Internal Server Error — 服务器内部错误,无法完成请求。
502:Bad Gateway — 作为网关或者代理服务器尝试执行请求时,从远程服务器接收到了无效的响应。
5、重定向和转发区别
重定向:redirect
地址栏发生变化
重定向可以访问其他站点(服务器)的资源
重定向是两次请求。不能使用request对象来共享数据
转发:forward
转发地址栏路径不变
转发只能访问当前服务器下的资源
转发是一次请求,可以使用request对象共享数据
6、Cookie和Session区别
Cookie 和 Session都是用来跟踪浏览器用户身份的会话方式,但两者有所区别:
Cookie 数据保存在客户端(浏览器端),Session 数据保存在服务器端。
cookie不是很安全,别人可以分析存放在本地的COOKIE并进行欺骗,考虑到安全应当使用session。
Cookie ⼀般⽤来保存⽤户信息,Session 的主要作⽤就是通过服务端记录⽤户的状态
7、浏览器输入URL过程
过程:DNS解析、TCP连接、发送HTTP请求、服务器处理请求并返回HTTP报文、浏览器渲染、结束
过程 | 使用的协议 |
---|---|
浏览器查找域名DNS的IP地址,DNS查找过程(浏览器缓存、路由器缓存、DNS缓存 ) | DNS:获取域名对应的ip |
根据ip建立TCP连接 | TCP:与服务器建立连接 |
浏览器向服务器发送HTTP请求 | HTTP:发送请求 |
服务器响应HTTP响应 | HTTP |
浏览器进行渲染 |