1、Content-Type 和 Accept 的区别
Content-Type 是实体头部,会出现在请求头和响应头表示当前传输的数据体是json格式
Accept 是请求头部,表示本次请求客户端期望服务端返回json格式数据。
2、如何优化HTTP请求
域名解析:尽可能减少域名解析次数-----减少跨站、外部资源的引用
创建连接:减少连接创建次数-----使用Keep-Alive避免重复连接
发送请求:尽力减少请求次数-----合理设置Expires时间、资源合并
等待响应:提高服务器端运行速度-----提高数据运算及查询速度
接收响应:尽可能减少响应数据长度-----启用压缩
3、什么是CDN
CDN 即内容分发网络,它应用了 HTTP 协议里的缓存和代理技术,代替源站响应客户端的请求。
使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率
4、GET和POST的区别
问题的实质其实是二者在浏览器访问的不同
GET在浏览器回退时是无害的(被缓存),而POST会再次提交请求
GET产生的URL地址可以被浏览器收藏,而POST不可以
GET使用URI传参数,有长度限制,POST则没有
GET请求只能进行URL编码,而POST支持多种编码方式
GET请求是幂等的
5、状态码问题
参考 HTTP协议 > 状态码
6、请求头&报文头问题
参考 HTTP协议 > 报文头
7、cookie和session区别
参考 HTTP协议 > 状态管理
8、TCP创建连接为什么是三次握手
参考 HTTP协议 > 创建连接(三次握手)的表格详解
9、TCP断开连接的具体流程
参考 HTTP协议 > 断开连接(四次握手)图文详解
10、TCP断开连接过程中发出第四次挥手的确认报文后为什么不会立刻释放TCP连接
如果第四次挥手的报文丢失,服务端没收到确认ACK报文就会重发第三次挥手的报文,这样报文一去一回最长
时间就是2MSL,所以客户端需要等这么长时间来确认服务端确实已经收到了。
11、已经建立了连接如果客户端突然出现故障了怎么办
TCP有一个计时器机制,服务端每次接收到客户端的请求都会复位这个计时器,当一定时间没有收到客户端的信
息服务端就会发送一个探测报文,如果依然没有响应之后每隔75s重新发送一次,如果连着10个探测报文没有响应
服务器就认为客户端出现了故障,会主动关闭连接
12、HTTP协议和TCP/IP协议的关系
HTTP主要负责客户端和服务端之间请求应答的标准定义(比如报文),而数据传输依赖TCP/IP协议