HTTP协议基础

HTTP 协议

————————————————————————————————————————

什么是 HTTP 协议?

通常使用的网络,是在 TCP/IP 协议族的基础上运作的。

HTTP 属于它内部的一个子集。

与 HTTP 关系密切的协议:IP TCP DNS

负责传输的 IP 协议
可能有人会把 IP 地址和 IP 协议搞混, IP 其实是一种协议的名称。

IP 协议的作用是把各种数据包传递给对方。而要保证确实传递到对方那里,就需要满足各类条件。其中两个重要条件是 IP 地址和 MAC 地址。
IP 地址指明了节点被分配到地址,MAC 地址是指网卡所属的固定地址。IP 地址可以和 MAC 地址进行配对,IP 地址是可以变化的而 MAC 地址基本上不会更改。

IP 间的通信依赖 MAC 地址。在网络上,通信的双方在同一局域网内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的 MAC 地址来搜索下一个中转目标。这时,会采用的 ARP 协议。ARP 是一种用以解析地址的协议,根据通信双方的 IP 地址就可以反查出对应的 MAC 地址。

没有人能够全面掌握互联网中的传输状况

在到达通信目标前的中转过程中,那些计算机和路由器等网络设备只能获悉很粗略的传输路线。

这种机制称为路由选择,有点像快递公司的送货过程。想要寄快递的人,只要将自己的货物送到集散中心,就可以知道快递公司是否可以收件发货,该快递公司的集散中心检查货物的送达地址,明确下站该送往哪个区的集散中心。接着,那个区的集散中心会判断能否送到对方的家中。
我们是想通过这个比喻说明,无论哪台计算机、哪台网络设备,他们都无法全面掌握互联网中的所有细节。

确保可靠性的TCP协议

按层次分,TCP 位于传输层,提供可靠的字节流服务。

所谓的字节流服务是指,为了方便传输,将大块数据分割成一包文段为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠的传给对方。总的来说,TCP 协议为了更容易送达大数据才把数据分割,而且 TCP 协议能够确认数据最终是否到达对方。

为了准确无误的将数据送到目标处,TCP 协议采用了三次握手策略。用 TCP 协议把数据包送出去后,TCP 不会对传送后的情况置之不理,他一定会向对方确认是否成功送达。握手过程中使用了 TCP 的标志——SYN 和 ACK.

发送端发送一个带有 SYN 标志的数据包给对方.接收端收到后,回传一个带有 SYN/ACK 标志的数据包表示传达确认信息.最后,发送端在回传一个带有 ACK 标志的数据包,代表握手结束.

如果再握手过程中某个阶段莫名中断,TCP 协议会再次以相同的顺序发送相同的数据包。

URI 和 URL

与 URI (统一资源标识符)相比,我们更熟悉 URL ,URL 正是使用 web 浏览器等访问web 页面时需要输入的网页地址。

简单的HTTP协议

HTTP 协议用于客户端和服务器端之间的通信

通过请求和相应的交换达成通信。

HTTP 是一种不保存状态,即无状态协议。HTTP 协议自身不对请求和响应之间的同性状态进行保存,也就是说在 HTTP 这个级别,协议对于发送过的请求和响应都不做持久化处理。

持久连接

只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。
持久连接的好处在于减少了 TCP 连接的重复建立和断开造成的额外开销。

管线化

持久连接使得多数连接请求以管线化的方式发送成为可能。
从前发送请求后需要等待并收到响应,才能发送下一个请求。管线化技术出现后,不用等待响应就可以直接发送下一个请求。

这样就可以做到同时并行发送多个请求,而不需要一个一个等待响应了。

使用cookie的状态管理

HTTP 是无状态协议,他不对之前发生过的请求和响应状态进行管理。
也就是说,无法根据之前的状态进行本次的处理请求。
假设要求登录认证的网页本身无法进行状态的管理,那么每次跳转写新面就要再次登录,或者要在每次请求中附加参数来管理登陆状态。

确保 WEB 安全的 HTTPS

在 HTTP 协议中可能存在信息窃听或者身份伪装等安全问题。使用HTTPS通信机制可以有效的防治这些问题。

虽然 HTTP 有相当优秀和方便的一面,但是 HTTP 也有自己的缺点:

1、通信使用明文,内容可能会被窃听。
2、不验证通信方的身份,因此有可能遭遇伪装。
3、无法证明报文的完整性,所以有可能被篡改。

由于 HTTP 本身不具备加密的功能,所以也无法做到对通信整体进行加密。即,HTTP 报文使用明文方式发送。

如果要问为什么通信时不加密是一个缺点,那是因为,按照 TCP/IP 协议族的工作机制,通信内容在所有的通信线路上都有可能遭到窥视。
即使是已经加密的通信,也同样会被窥视,只是说如果通信经过了加密,则可能让窥视方无法破解报文的信息含义。

加密处理防止被窃听

在目前大家正在研究得如何防止窃听保护信息的几种对策中,最为普及的就是加密技术。加密的对象可以有这么几个。

通信的加密
一种方式就是将通信加密。HTTP 协议中没有加密机制,但可以通过 SSL 或者 TLS 的组合使用,加密 HTTP 的通信内容。用 SSL 建立安全通信线路之后,就可以在这条线路上进行 HTTP 通信了。与 SSL 组合使用的 HTTP 被称为 HTTPS.

内容的加密
还有一种将参与通信的内容本身加密的方式。由于 HTTP 协议中没有加密机制,那么就对 HTTP 协议传输的内容本身加密。

与HTTP协作的web服务器

单台虚拟主机实现多个域名
通信数据转发程序:代理、网关、隧道

代理:使用代理服务器的理由有
利用缓存技术减少网络带宽的流量
组织内部针对特定网站的访问控制
以获取访问日志为主要目的

缓存代理:代理转发响应时,缓存代理会预先将资源的副本缓存在代理服务器上。当代理再一次收到相同的资源请求时,就可以不从源服务器那里获取资源。

透明代理:转发请求或响应时,不对报文做任何加工的代理类型被称为透明代理。反之称为费透明代理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值