汇总遇到过的http问题
熟悉http吗,听说过http的缓存吗,介绍一下
HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议

哪个字段控制缓存策略

expires
知道http哪些方法
get、post、put
put和post什么区别?它们功能差别很大吗?

了解过Http的一些规范吗,比如restful?

三次握手和四次挥手的过程描述,其中的报文信息,还有客户端与服务端的状态转变



字节序相关,大端小端是什么,网络中的字节序和主机字节序分别是什么?如何转换?


主机字节序为小端模式(因为主机)、网络中是以大端方式存储的(因为网络接收时会把线接收到的视为起始位,是相反的)。
顺口溜:主机一般小,网络更加大
转换使用转换函数
滑动窗口,拥塞控制等问题







这里是cwnd拥塞窗口设置成原来的一半,再吧门限设置成当前窗口值。
窗口是控制发送方的发送数量的,所以慢开始、拥塞避免是发的,快重传是指接收方重复给发送方发送3次相同的确认报文让发送放重新发送的,快恢复是网络中不在拥塞时的继续发送策略。只有开始时、网络卡死时才判断拥塞发生将重新慢开始。卡死条件就是查看是否接收确认报文。
负载均衡的一些场景问题(nginx)

http与https有什么区别
http与https的区别:
1 https需要使用到ca申请证书
2 http明文传输,而https加密传输
3 http比https快,只有3个tcp包,而http需要3+9ssl包
4 https=ssl+http,占用更多服务器资源
5 http与https连接方式不同端口不同。
在浏览器输入url后发生了什么
输入url后发生什么6点:
向DNS服务器请求ip
建立tcp三次握手连接
发送http报文
接收http报文返回响应
浏览器渲染html
tcp4次挥手
讲一下tcp三次握手
3握:
1、客户端向服务器发送第一次握手请求,将SYN设置1表示请求连接,随机生成seq为X,表示客户端进入请求连接状态。
2、服务器接收后,向哭护短发送第二次握手请求,将SYN设置1表示连接,设置ACK为1表示确认,设置ack为X+1为应答,设置seq为Y,表示服务其进入准备连接状态
3、客户端接收后,向服务其发送第三次握手请求,将ACK设置为1表示确认,设置ack为Y+1表示这是双方建立连接
4挥手;
1、客户端向服务器发送第一次挥手请求,将FIN设置1表示请求断开,随机生成seqX,客户端进入FIN WAIT1状态
2、服务器接收后,发送第二次挥手请求,设置ACK1 ackX+1,服务器进入CLOSE WAIT状态
3、服务器发送完内容后,发送第三次会搜请求,设置FIN1 seqY,服务器进入LAST ACK状态
4、客户端接收后,发送第四次挥手请求,设置ACK1 ackY+1,客户端进入TIME WAIT状态,服务器进入CLOSED
HTTP 301 和 302区别
DNS解析过程
get和post区别
知道arp吗
python的requests库,getpost返回了什么
返回一个requests.model.response对象,其中常用到status、text、json
介绍一下dns协议(dns服务器)
hdlc与ppp协议
get与post有什么区别
get与post都是http的请求资源方式,而http是基于tcpip协议的,所以get与post的底层都是tcpip传输协议,知识http给他们规定了不同的规则。
主要区别有3方面
1、传参方式,get放在url中、长度有限制、编码只能使用asscii;而post在request body中、无长度限制、编码多样
2、安全性方面:get在url中、会留有浏览记录;而post在body中不会有浏览记录
3、get会缓存、而post不设置就不会。
最后一点不同在于get发1个tcpip包,而post发2个。
知道http的restful吗
restful指的是一种框架规范,需要满足rest原则,有6点:
1、客户端服务器分离
2、无状态
3、可缓存
4、统一接口
5、分层系统
6、按需编码