HTTP笔记

1. 网络基础 TCP/IP
为了理解 HTTP, 我们有必要事先了解一下 TCP/IP 协议族。通常使用的网络(包括互联网) 是在 TCP/IP 协议族的基础上运作的。 而 HTTP 属于它内部的一个子集。

1.1 TCP/IP 协议族
计算机与网络设备要相互通信, 双方就必须基于相同的方法。 比如,如何探测到通信目标、 由哪一边先发起通信、 使用哪种语言进行通信、 怎样结束通信等规则都需要事先确定。 不同的硬件、 操作系统之间的通信, 所有的这一切都需要一种规则。 而我们就把这种规则称为协议(protocol) 。
TCP/IP 是互联网相关的各类协议族的总称

                          TCP/IP 是互联网相关的各类协议族的总称

1.2 TCP/IP 的分层管理
    TCP/IP 协议族里重要的一点就是分层。 TCP/IP 协议族按层次分别分为以下 4 层: 应用层、 传输层、 网络层和数据链路层。
    把 TCP/IP 层次化是有好处的。 比如, 如果互联网只由一个协议统筹, 某个地方需要改变设计时, 就必须把所有部分整体替换掉。 而分层之后只需把变动的层替换掉即可。 把各层之间的接口部分规划好之后, 每个层次内部的设计就能够自由改动了。

TCP/IP 协议族各层的作用如下。

  • 应用层

    16应用层决定了向用户提供应用服务时通信的活动。TCP/IP 协议族内预存了各类通用的应用服务。 比如, FTP(FileTransfer Protocol, 文件传输协议) 和 DNS(Domain Name System, 域名系统) 服务就是其中两类。HTTP 协议也处于该层。

  • 传输层

    传输层对上层应用层, 提供处于网络连接中的两台计算机之间的数据传输。
在传输层有两个性质不同的协议: TCP(Transmission ControlProtocol, 传输控制协议) 和 UDP(User Data Protocol, 用户数据报协议) 。

  • 网络层(又名网络互连层)

    网络层用来处理在网络上流动的数据包。 数据包是网络传输的最小数据单位。 该层规定了通过怎样的路径(所谓的传输路线) 到达对方计算机, 并把数据包传送给对方。

  • 链路层(又名数据链路层, 网络接口层)

    用来处理连接网络的硬件部分。 包括控制操作系统、 硬件的设备驱动、 NIC(Network Interface Card, 网络适配器, 即网卡) , 及光纤等物理可见部分(还包括连接器等一切传输媒介) 。 硬件上的范畴均在链路层的作用范围之内。

1.3 TCP/IP 通信传输流
    利用 TCP/IP 协议族进行网络通信时, 会通过分层顺序与对方进行通信。 发送端从应用层往下走, 接收端则往应用层往上走。我们用 HTTP 举例来说明, 首先作为发送端的客户端在应用层(HTTP 协议) 发出一个想看某个 Web 页面的 HTTP 请求。接着, 为了传输方便, 在传输层(TCP 协议) 把从应用层处收到的数据(HTTP 请求报文) 进行分割, 并在各个报文上打上标记序号及端口号后转发给网络层。在网络层(IP 协议) , 增加作为通信目的地的 MAC 地址后转发给链路层。 这样一来, 发往网络的通信请求就准备齐全了。接收端的服务器在链路层接收到数据, 按序往上层发送, 一直到应用层。 当传输到应用层, 才能算真正接收到由客户端发送过来的 HTTP请求。
这里写图片描述

1.4 与 HTTP 关系密切的协议 : IP、 TCP 和DNS
1.4.1 负责传输的 IP 协议
    按层次分, IP(Internet Protocol) 网际协议位于网络层。 InternetProtocol 这个名称可能听起来有点夸张, 但事实正是如此, 因为几乎所有使用网络的系统都会用到 IP 协议。 TCP/IP 协议族中的 IP 指的就
是网际协议, 协议名称中占据了一半位置, 其重要性可见一斑。 可能有人会把“IP”和“IP 地址”搞混, “IP”其实是一种协议的名称。IP 协议的作用是把各种数据包传送给对方。 而要保证确实传送到对方
那里, 则需要满足各类条件。 其中两个重要的条件是 IP 地址和 MAC地址(Media Access Control Address) 。IP 地址指明了节点被分配到的地址, MAC 地址是指网卡所属的固定地址。 IP 地址可以和 MAC 地址进行配对。 IP 地址可变换, 但 MAC地址基本上不会更改

1.4.2 确保可靠性的 TCP 协议

    按层次分, TCP 位于传输层, 提供可靠的字节流服务。所谓的字节流服务(Byte Stream Service) 是指, 为了方便传输, 将大块数据分割成以报文段(segment) 为单位的数据包进行管理。 而可
靠的传输服务是指, 能够把数据准确可靠地传给对方。 一言以蔽之,TCP 协议为了更容易传送大数据才把数据分割, 而且 TCP 协议能够确认数据最终是否送达到对方。
为了准确无误地将数据送达目标处, TCP 协议采用了三次握手(three-way handshaking) 策略。 用 TCP 协议把数据包送出去后, TCP不会对传送后的情况置之不理, 它一定会向对方确认是否成功送达。

1.5 负责域名解析的 DNS 服务
    DNS(Domain Name System) 服务是和 HTTP 协议一样位于应用层的
协议。 它提供域名到 IP 地址之间的解析服务。
后续的整理我放在下面的文档里免了,如果喜欢可以直接下载看,这是我再学习HTTP协议时整理的笔记,涉及的东西比较多,也比较细,如果想要对HTTP继续深入建议读者可以下载,附上链接地址。
http://download.csdn.net/download/u011958281/10254877

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值