例如主机m.xyz.com打算发送邮件给主机y.abc.com。这时就必须知道主机y.abc.com的IP地址。则DNS的查询步骤为:浏览器
一、主机m.xyz.com先向本地服务器dns.xyz.com进行递归查询。缓存
二、本地服务器采用迭代查询。它先向一个根域名服务器查询。服务器
三、根域名服务器告诉本地服务器,下一次应查询的顶级域名服务器dns.com的IP地址。网络
四、本地域名服务器向顶级域名服务器dns.com进行查询。并发
五、顶级域名服务器dns.com告诉本地域名服务器,下一步应查询的权限服务器dns.abc.com的IP地址。学习
六、本地域名服务器向权限域名服务器dns.abc.com进行查询。url
七、权限域名服务器dns.abc.com告诉本地域名服务器,所查询的主机的IP地址。spa
八、本地域名服务器最后把查询结果告诉m.xyz.com。计算机网络
整个查询过程共用到了8个UDP报文;为了提升DNS查询效率,并减轻服务器的负荷和减小因特网上的DNS查询报文数量,在域名服务器中普遍使用了高速缓存,用来存放最近查询过的域名以及从何处得到域名映射信息的记录。递归
无状态协议对于事务处理没有记忆能力。缺乏状态意味着若是后续处理须要前面的信息;也就是说,当客户端一次HTTP请求完成之后,客户端再发送一次HTTP请求,HTTP并不知道当前客户端是一个”老用户“。
可使用Cookie来解决无状态的问题,Cookie就至关于一个通行证,第一次访问的时候服务器给客户端发送一个Cookie,当客户端再次来的时候,拿着Cookie(通行证),那么服务器就知道这个是”老用户“。
一、HTTP规定,当执行GET请求的时候,设置method为GET,并且要求把传送的数据放在url中以方便记录;若是是POST请求,设置method为POST,并把要求把传送的数据放在request body中;可是HTTP只是个行为准则,而TCP才是GET和POST怎么实现的根本;对于GET请求若是你在request body中放置数据也是没有问题。
二、传输数据量问题:大多数浏览器一般都会限制url长度在2KB个字节,而大多数服务器最多处理64KB大小的url。超过的部分,可能不处理。若是你用GET服务,在request body中藏了数据,不一样服务器的处理方式也是不一样的,有些服务器会帮你处理,读出数据,有些服务器直接忽略,因此,虽然GET能够带request body,也不能保证必定能被接收到。
三、数据包问题:GET产生一个TCP数据包;POST产生两个TCP数据包。对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。GET和POST有各自的语义,不要随便替换。并非全部浏览器都会在POST中发送两次包,Firefox就只发送一次。
GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,能够经过URL传参给服务器
POST:用于传输信息给服务器,主要功能与GET方法相似,但通常推荐使用POST方式。
PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。
HEAD: 得到报文首部,与GET方法相似,只是不返回报文主体,通常用于验证URI是否有效。
DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。
OPTIONS:查询相应URI支持的HTTP方法。
关注:关于计算机网络的知识我在今日头条有详细的分享,感兴趣的同窗能够一块儿学习