学习HTTP之我见

一.HTTP什么?

          字面上的意思就是HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写,请注意这这是字面上的意思!

二.HTTP用在哪里?

       http协议最常用的地方就是在我们的浏览器中,你可能会说?谁说的http在浏览器中,我怎么没看见。
       其实,http协议最常用的也就是浏览器与服务器之间的通信啦!在哪里呢?就在我们的浏览器地址栏中,因为浏览器最常用的协议就是http,只不过它被我们的浏览器隐藏了。
       自从http1.1版本发布之后,还有一个用得多的地方就是我们的多线程下载,你可能听说过IDM下载软件,它就是一个典型的http多线程下载软件

三.当我们输入URL之后,这其中的过程是怎样的?

        首先,当我们输入URL之后,浏览器会先查找我们本地的hosts文件,如果是windows系统,则是C:\Windows\System32\drivers\hosts,如果是linux系统,则是在/etc/hosts中。当浏览器发现我们的域名存在hosts中时,就会指向我们hosts中相对于的IP,这种用法常常用于在本地调试。
        当我们的域名不存在hosts中的时候,我们的浏览器就会根据我们计算机的网络配置,通过DNS地址,去查询相应的IP,查询成功后,域名服务器就会返回我们需要的IP。
        得到IP之后,浏览器会根据我们默认的端口号去查找到对应的主机。http默认端口号为80端口,浏览器也将其省略了!
       地址组成

        (http://)hostname(:80)/URL

             OSI七层模型和TCP/IP五层模型

            


3.1客户端是如何找到服务器主机的?

           首先,http协议是一个应用层的协议,其他的应用层协议还有smtp,ftp,telnet等等。http会被封装成TCP报文,会被添加上源端口和目的端口,然后进一步被封装成IP报文,加上目的IP地址,然后会被数据链路成封装成帧,并加上相应的序号,进一步到物理层,物理层会将帧编程字节流,这样,就能够在物理线路中传播了。当我们所以的帧到达目的网络后。通过由下到上的解包。注意,这里不是主机,而是目的网络,然后会根据我们的ARP协议,结合主机的MAC地址找到相应的主机。

3.2客户端和服务器之间的具体过程是怎样的?

            首先,浏览器会发送http请求。http请求内容由三部分组成:
1,请求行;一般包含有请求的方法,请求的URL地址以及HTTP协议版本号。常用的请求方法有,POST,GET,DELETE,HEAD,PUT,这5个是我们平时使用的最常用的,POST用于增加数据,GET用于请求获取数据,DELETE用于删除数据,PUT用于更新数据。
2.请求头,也叫消息报头,请求头一般会包含需要告知服务器我客户端的状态等等,比如客户端能够解析的文件类型Accept能够解析的字符编码Accept-Charset,支持的语言Accept-Language,以及是否支持压缩等等。
3,请求正文,通常请求正文为一个空白行。
            之后,通过3.1中提到的寻找服务器的方法找到服务器的位置。
            服务器通常也由好几个部分组成:负载均衡,LVS(Linux虚拟服务器),反向代理服务器,WEB服务器。
1.负载均衡的作用是将到达服务器的请求进行合理的分配,将他们分别转到不同的服务器上,以减轻服务器的压力。
2.LVS则是一个服务器集群,由于每一种服务器能够处理的请求有限,所以我们要使用集群来解决访问量过大的问题,比如国内的百度,新浪,网易等门户网站都使用了LVS。
 3.反向代理,则是在服务器端建立一个代理服务器,由代理服务器去WEB服务器上代替我们寻找资源,然后将资源返回给我们。常常用于防攻击策略、放抓取、SSL、gzip、自动性能优化以及高速缓存等。

 4.WEB服务器则是我们网站的实际存在位置,web服务器将我们的网站部署,向请求的浏览器提供请求的。常用的又Apache,Tomcat以及nodejs。
资源。
          当我们的WEB服务器监听到我们的HTTP请求时,会对http请求的信息进行解析,得到相应的URL路径和请求的方法。因为我最近在使用nodejs做开发,这里就使用nodejs来举例
nodejs实际上是一个javascript的运行环境,node通过http模块来提供http服务。nodejs有一个名叫路由控制器的中间件,当URL地址和方法传到node的时候,路由控制器会进行解读,
将得到的URL地址和index.js路由文件进行匹配,当匹配到相同的路径是,就会调用模板引擎对静态文件,模型进行加工,得到需要返回的数据。
         这时候,WEB服务器就会对返回的信息按照http协议进行封装。
        消息响应,即返回给浏览器的数据,通常也有三部分组成:状态行,消息报头,响应正文。
1.状态行。状态行中主要包含了HTTP协议版本,以及返回的状态码。常用的状态码有2XX,3XX,4XX。点击这里查看具体
2.消息报头。主要包含有返回的数据类型,内容长度等信息
3.响应正文,这里就包含我们服务器返回的正文数据。
        当响应体到达浏览器的时候,浏览器引擎会对响应内容进行渲染,渲染成功后,就可以在浏览器中显示了!
  
数据中心机房是现代信息技术的核心设施,它承载着企业的重要数据和服务,因此,其基础设计与规划至关重要。在制定这样的方案时,需要考虑的因素繁多,包括但不限于以下几点: 1. **容量规划**:必须根据业务需求预测未来几年的数据处理和存储需求,合理规划机房的规模和设备容量。这涉及到服务器的数量、存储设备的容量以及网络带宽的需求等。 2. **电力供应**:数据中心是能源消耗大户,因此电力供应设计是关键。要考虑不间断电源(UPS)、备用发电机的容量,以及高效节能的电力分配系统,确保电力的稳定供应并降低能耗。 3. **冷却系统**:由于设备密集运行,散热问题不容忽视。合理的空调布局和冷却系统设计可以有效控制机房温度,避免设备过热引发故障。 4. **物理安全**:包括防火、防盗、防震、防潮等措施。需要设计防火分区、安装烟雾探测和自动灭火系统,设置访问控制系统,确保只有授权人员能进入。 5. **网络架构**:规划高速、稳定、冗余的网络架构,考虑使用光纤、以太网等技术,构建层次化网络,保证数据传输的高效性和安全性。 6. **运维管理**:设计易于管理和维护的IT基础设施,例如模块化设计便于扩展,集中监控系统可以实时查看设备状态,及时发现并解决问题。 7. **绿色数据中心**:随着环保意识的提升,绿色数据中心成为趋势。采用节能设备,利用自然冷源,以及优化能源管理策略,实现低能耗和低碳排放。 8. **灾难恢复**:考虑备份和恢复策略,建立异地灾备中心,确保在主数据中心发生故障时,业务能够快速恢复。 9. **法规遵从**:需遵循国家和地区的相关法律法规,如信息安全、数据保护和环境保护等,确保数据中心的合法运营。 10. **扩展性**:设计时应考虑到未来的业务发展和技术进步,保证机房有充足的扩展空间和升级能力。 技术创新在数据中心机房基础设计及规划方案中扮演了重要角色。例如,采用虚拟化技术可以提高硬件资源利用率,软件定义网络(SDN)提供更灵活的网络管理,人工智能和机器学习则有助于优化能源管理和故障预测。 总结来说,一个完整且高效的数据中心机房设计及规划方案,不仅需要满足当前的技术需求和业务目标,还需要具备前瞻性和可持续性,以适应快速变化的IT环境和未来可能的技术革新。同时,也要注重经济效益,平衡投资成本与长期运营成本,实现数据中心的高效、安全和绿色运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值