http简单理解与认识

一:发起http:

     发起一个http请求和如何建立一个socket连接区别不大,浏览器在建立socket连接之前,必须根据地址栏里输入的url域名DNS解析出ip地址,再根据ip地址和默认80端口与远程服务器建立socket连接,然后浏览器根据这个url组装成一个get类型的http请求头,通过outputStream.write发送到目标服务器,服务器等待inputStream.read返回数据,最后断开连接。

     总结:发起一个http请求的过程就是建立一个socket通信的过程

二:参数:请求响应:

     三:常见的http状态码:

四:DNS域名解析过程:

     

      第一步:浏览器检查缓存中有没有这个域名对应的解析过的ip地址,如果有,解析过程结束,浏览器缓存域名有限制,缓存大小有限制,时间也有限制,通常情况下为几分钟到几小时不等,缓存时间限制可以通过TTL属性设置,缓存时间太长,一旦域名被解析到的ip有变化,会导致被客户端缓存的域名无法解析到变化后的ip地址,以至该域名不能正常解析,这段时间内,可能有一部分用户无法访问网站,如果时间设置太短,会导致用户每次访问网站都要重新解析一次域名。

     第二步:如果用户的浏览器缓存中没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。其实操作系统也会有一个域名解析的过程,通过c盘下

可以将任何域名解析到任何能够访问的ip地址,如果你在这里指定了一个域名对应的ip地址,那么浏览器会首先使用这个ip地址,

      注意:正是因为有这种DNS解析的规程,所以黑客就有可能通过修改你的域名解析来把特定的域名解析到它的ip地址上,导致这些域名被劫持。

     第三步:怎么知道域名服务器?在我们网络配置中都会有“DNS服务器地址”,这个地址就用于解决前两步无法解的办法。系统会把这个域名发送给这里设置的LDNS,也就是本地区的域名服务器。这个DNS通常都提供给你本地互联网接入的一个DNS解析服务,例如你是在学校接入互联网,那么你的DNS服务器肯定在你的学校,如果你是在一个小区接入互联网的,那这个DNS就是提供给你接入互联网的应用提供商,即电信或者联通,也就是通常所说的SPA,那么这个DNS通常也会在呢所在城市的某个角落,不会很远,在windows下可以通过ipconfig查询这个地址,

         这个专门的域名解析服务器性能都会很好,它们一般都会缓存域名解析结果,缓存时间是受域名的·失效时间控制的,一般缓存空间不是影响域名失效的主要因素。大约80%的域名解析到这里就已经完成了,所以LDNS主要承担了域名的解析工作。

       第四步:如果LDNS依然没有命中,就直接到Root Server域名服务器请求解析。

       第五步:根域名服务器返回给本地域名服务器一个所查询域的主域名服务器(gTLD Server)地址,gTLD是国际顶级域名服务器,如 .com、.cn、.org等,全球只有13台左右,

       第六步:本地域名服务器(Local DNS Server)再向上一步返回的gTLD服务器发送请求。

       第七步:接受请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Srver通常就是你注册的域名服务器,例如你在某个域名服务器提供商申请的域名,那么这个域名解析任务就由这个域名提供商的服务器来完成。

       第八步:Name Server域名服务器会查询存储的域名和ip的映射关系表,正常情况下都根据域名得到目标ip记录,连同一个TTL值返回给DNS Server域名服务器。

      第九步:返回该域名对应的ip和TTL值,Local DNS Server会缓存这个域名和ip的对应关系,缓存时间由TTL值控制。

       第十步:把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束。

   五:清除缓存的域名:

这样就可以使得一些不正常的dns解析正常进行。

       五:CDN工作机制

            CDN就是内容分发网络(Content Delivery NetWork),它是构筑在现有internet上的一种先进的流量分配网络,其目的是通过在现有Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。cdn = 镜像(mirror)+缓存(cache)+整体负载均衡(gslb)。

             目前cdn以缓存网站中的静态数据为主,如css、js、图片和静态页面等数据。用户在从主站服务器请求到动态内容后再从cdn上下载这些静态数据,从而加速网页数据内容的下载速度

      解析:用户访问某个静态文件(如css文件),假如这个静态文件的域名为cdn.taobao.com,那么首先要向Local DNS服务器发起请求,一般经过迭代解析后回到这个域名的注册服务器去解析,一般每个公司都有一个DNS解析服务器,这时这个dns解析服务器通常会把它重新CNAME解析到另外一个域名,而这个域名最终会被指向CDN全局中的DNS负载均衡服务器,再由这个gtm来最终分配是哪个地方的访问用户,返回给离这个用户最近的cdn节点。

      拿到dns解析结果,用户就直接去这个cdn节点访问这个静态文件了,如果这个节点中所请求的文件不存在,就会在回到源站去获取这个文件,然后再返回给用户。

     六:负载均衡:

        负载均衡就是对工作任务进行平衡、分摊到多个操作单元上执行,如图片服务器,应用服务器,共同完成工作任务

猜你喜欢

转载自blog.csdn.net/qq_35152911/article/details/82430974