java中的接口是类吗
231
2022-10-14
#yyds干货盘点#前端到后端的访问过程
当我们在浏览器输入一个网址访问到一个网页,看似简单的过程,究竟在程序中如何运行?
操作:在浏览器输入网址(如:baidu.com)
过程:
思考的问题
过程1:
什么是DNS?--->域名解析服务器
怎么解析?(DNS解析过程)
浏览器检查自身缓存中有没有解析过这个域名
有,解析结束返回IP
没有,执行下面操作:
浏览器检查系统中有没有对应的已解析过的结果。
而操作系统也有对应解析过程:
在windows系统中的hosts文件进行设置,如果你在此指定了一个域名对应的ip地址,浏览器就会首先使用这个ip。(设置本地自己的博客方法)。
因为可以通过修改你的hosts文件里的内容把特定的域名解析到他指定的ip地址上,就造成所谓的域名劫持.所以在windows7中将hosts文件设置成了管理员权限,防止被恶意篡改。(以前的黑-客操作)
如果还没有找到,才会真正的请求本地域名服务器(LDNS)来解析域名。
这台服务器一般在你的城市的某个角落,距离你不会很远,并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约80%的域名解析到这里就完成了。
如果LDNS仍然没有找到,就会找Root Server 域名服务器请求解析。
过程2:
TCP是什么?
传输控制层协议,面向字节流的通讯协议。
TCP的三次握手
客户向服务器发送请求报文(客户端同步已发送状态)服务器收到请求报文,如果同意连接,向A发送确认报文(服务器同步收到)客户端收到服务器发送确认报文后(客户端已建立连接)服务器收客户端确定报文后(服务器已建立连接)。
TCP/UDP区别
TCP UDP
可靠性 可靠 不可靠
连接线 面向链接 面向无连接
报文 面向字节流 面向无连接
效率 低 高
传输速度 慢 快
应用场景 效率要求低 对效率高
精准度要求高 准确度低的场景
有连接的场景 远程文件服务器
电子邮件,HTTP
TCP的黏包问题
问题的产生
TCP基于字节流,只维护送出去多少,客户端确定了多少,并没有维护信息与信息之间的边界,因而极有可能导致粘包问题。 TCP所发送的的字节流中存在一个MSS(最大报文端长度),如果所发送的消息的字节过长,那么会对所发送的消息进行分割,那么也会直接导致粘包。tcp的延迟发送问题
问题的解决
应用层要维持消息与消息的边界(因为传输层,链路层,网络层都没有)
在包的尾部加转义字符:\r\n(换行),但消息里面有就会出现问题采用包头加包体长度的方法,一般情况下包头是定长的,假如包头是4个字节,可以先接受包头的4个字节,从而计算出包体的长度,然后继续进行接受。当然,我们可以使用复杂的应用层协议。
过程3:
请求方式(8种,GET请求,POST请求)
GET使用给定的URI从给定服务器中检索信息(返回内容)
POST方法用于将数据发送到服务器以创建或更新资源,它要求服务器确认请求中包含的内容作为由URI区分的Web资源的另一个下属。(更新内容)
过程4:
响应方式(8种,与请求方式对应)
ps:状态码:200(请求成功)302(重定向访问),404(资源不存在),500(服务器报错),503(服务器暂时无法提供服务)
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~