图解http学习笔记1.网络基础

来源:互联网 发布:ti4总决赛数据 编辑:程序博客网 时间:2024/06/05 02:09

网络基础

  • 网络基础
    • http介绍
    • TCPIP基础
      • TCPIP协议族
      • TCPIP的分层管理
      • TCPIP通信传输流
    • IPTCPDNS
      • 负责传输的IP协议
        • 使用ARP协议凭借MAC地址进行通信
        • 没有人可以全面掌握互联网中的传输状况
      • 确保可靠性的TCP协议
        • 确保数据能到达目标
      • 负责域名解析的DNS服务
    • 各种协议与HTTP协议的关系
    • URI和URL
      • URI
      • URI格式
    • 并不是所有方法都符合RFC

http介绍

在web browser(网页浏览器)的地址栏中输入URL后,web browser会去从web服务器获取文件资源等信息,然后显示web页面。像这种通过获取服务器资源的web browser都可以称为client(客户端)。

HTTP(HyperText Transfer Protocol,超文本传输协议)。web是建立在HTTP协议上通信的。

WWW(World Wide Web,万维网),三项构建技术:把SGML(Standard Generalized Markup Language,标准通用标记语言)作为页面的文本标记语言的HTML(HyperText Markup Language,超文本标记语言);作为文档传递协议的HTTP;作为文档所在地址的URL(Uniform Resource Locator,统一资源定位符)。

TCP/IP基础

通常使用的网络是在TCP/IP协议族的基础上运作的,HTTP是其内部一个子集。

TCP/IP协议族

计算机与网络设备相互通信需基于相同的方法。不同的硬件,操作系统之间的通信,所有的一切都需要一种规则。这种规则被称为protocol(协议)。

把与互联网相关联的协议集合起来的总称就是TCP/IP。

TCP/IP的分层管理

TCP/IP协议按层次分为4层:应用层,传输层,网络层,数据链路层。

TCP/IP层次化后,每当修改后只需要改变相应的层即可。

各层次作用:

  1. 应用层

决定了向用户提供应用服务时通信的活动

TCP/IP协议族内预存了各类通用的应用服务。如FTP(File Transfer Protocol,文件传输协议)和DNS(Domain Name System 域名系统)

HTTP协议也属于该层

  1. 传输层

传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。

在传输层有两个性质不同的协议:TCP(Transmission Control Protocol, 传输控制协议)和UDP(User Data protocol,用户数据报协议)

  1. 网络层(网络互连层)

网络层处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了传输路径。

与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起作用:在众多的选项内选择一条传输路线。

  1. 链路层(数据链路层/网络接口层)

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

TCP/IP通信传输流

利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则往应用层上走。

HTTP为例:作为发送端的客户端在应用层(HTTP协议)发出一个想看某个Web页面的HTTP请求,在传输层(TCP协议)把应用层处收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。在网络层(IP协议)增加作为通信目的地的MAC地址后转发给链路层。接受端的服务器在链路层接收到数据,按序往上层发送直到应用层。当传输到应用层,才能算接收到由客户端发送过来的HTTP请求。

发送端在层与层之间传输数据时,每经过一层会被打上一个该层所属的首部信息。反之接受时,消去。

这种把数据信息包装起来的做法称为封装(encapsulate)。

IP、TCP、DNS

负责传输的IP协议

按层次分,IP(Internet Protocol)网际协议位于网络层。几乎所有使用网络的系统都会用到IP协议。TCP/IP协议族中的IP指的就是网际协议。

IP协议的作用是把各种数据包传送给对方。为保证确实传送到对方那里,则需要满足各类条件。最重要的条件是IP地址和MAC地址(Media Access Control Address).

IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址配对,IP地址可以变化,MAC地址基本上不会更改。

使用ARP协议凭借MAC地址进行通信

IP间的通信依赖MAC地址。不在同一局域网中(LAN),通信通常是通过多台计算机和网络设备中专才能连接到对方。进行中转时,会利用下一站中转设备的MAC的地址来搜索下一个中转目标。这里会采用ARP协议(Address Resolution Protocol).ARP是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。

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

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

这种机制成为路由选择(routing)。

确保可靠性的TCP协议

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

字节流服务(Byte Stream Service)是指,为传输方便,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,把数据准确可靠地传给对方。

确保数据能到达目标

为准确将数据传送到目标,TCP协议采用了三次握手策略(three-way handshaking).用TCP协议把数据包送出去后,TCP一定会向对方确认是否成功送达。握手过程中使用了TCP的标志(flag)——SYN(synchronize)和ACK(acknowledgement)

发送端首先发送一个带SYN标志的数据包给对方。接收到后回传一个带有SYN/ACK标志的数据包已示传达确认信息,发送端再回传一个带ACK标志的数据包,代表结束。

若在握手过程中某个截断中断,TCP写一个会再次以相同的数序发送相同的数据包。

除上述,TCP还有其他手段来保证通信的可靠性。

负责域名解析的DNS服务

DNS(Domain Name System)服务是和HTTP协议一样位于应用层的协议。它提供域名到IP地址之间的解析服务。

计算机既可以被赋予地址,也可以被赋予主机名和域名。

通常使用主机名或域名来访问对方的计算机,而不是直接使用IP地址访问。前者更容易记忆。

DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务。

各种协议与HTTP协议的关系

URI和URL

URI(统一资源标识符),URL(Uniform Resource Locator,统一资源定位符)。URL正是使用web浏览器风访问Web页面时需要输入的网页地址。如http://www.baidu.com/

URI

URI(Uniform Resource Identifier)。RFC2396的定义

  1. Uniform

规定统一的格式可方便处理多种不同类型的资源,而不是根据上下文环境来识别资源指定访问方式。

加入新增的协议方式(http:ftp:)也更容易

  1. Resource

资源定义是“可标识的任何东西”。除了文档文件、图像或服务(如天气预报)等能够区别于其他类型的,全都可作为资源。另外,资源不仅可以是单一的,也可以是多数的集合体。

  1. Identifier

表示可标识的对象,也称为标识符。。

URI就是由某个协议方案表示的定位标识符。协议方案是指访问资源所使用的协议类型名称。

采用HTTP协议时,协议方案就是http,除此之外还有ftp,mailto,telnet,file等等。

URI用字符串标识某一互联网资源,URL表示资源的地址(互联网上所处的位置)。

URI格式

表示指定的URI,要使用涵盖全部必要信息的绝对URI、绝对URL以及相对URL。(相对URL指从浏览器中基本URI处指定的URL,形如/image/logo.gif)

绝对URI格式:

  1. 协议方案名

使用http:和https:等协议方案名获取资源是要指定协议类型。不区分大小写,最后付一个冒号(:)。

也可以使用data:或javascript:这类指定数据或脚本程序的方案名。

  1. 登录信息(认证)

指定用户名和密码作为从服务器端获取资源时必要的登录信息(身份认证),可选

  1. 服务器地址

使用绝对URI必须指定带访问的服务器。地址可以是DNS可解析的名称,也可以是IPv4地址名,或者是IPv6地址名(如[0:0:0:0:0:0:0:1])

  1. 服务器端口号

指定服务器连接的网络端口号。可选,省略则使用默认端口号

  1. 带层次的文件路径

指定服务器上的文件路径来定位特指的资源。与UNIX系统的文件目录结构相似。

  1. 查询字符串

针对已指定的文件路径内的资源,可以任意参数使用查询字符串传入。可选

  1. 片段标识符

使用片段标识符通常可标记已获取资源中的子资源(文档内的某个位置)。RFC中未给出明确使用方法。可选


并不是所有方法都符合RFC

RFC(Request for Comments,征求修正意见书),用来制定HTTP协议技术标准

不按照RFC标准执行,有可能无法通信。

但也存在某些应用程序应客户端或服务器不同,将自成一套的标准进行了扩展的情况。

1 0