IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> HTTP协议 -> 正文阅读

[网络协议]HTTP协议

发送请求
发送请求
客户端
正常
错误
状态码2XX
状态码4XX,5XX

Web 及网络基础

  • 使用HTTP访问Web
    web页面的呈现是根据Web浏览器地址栏中指定的URL,Web浏览器从Web服务器端获取文件资源(resource)等信息,从而显示web页面。
    web使用一种名为HTTP(HyperText Transfer Protocol,超文本传输协议)的协议作为规范,完成从客户端等一系列运作流程。而协议是指规则的约定。
    web是建立在HTTP协议上通信的。
  • web 的诞生
    3项WWW 构建技术:把SGML(Standard Generalized Markup Language,标准通用标记语言)作为页面的文本标记语言的HTML(HyperText Markup Language,超文本标记语言);作为文档传递协议的HTTP;指定文档所在地址的URL(Uniform Resource Locator ,统一资源定位符).

  • 网络基础 TCP/IP
    通常使用的网络(包括互联网)是在TCP、IP 协议族的基础上运作的。而HTTP 属于它内部的一个子集。
  • TCP/IP 协议族
    不同的硬件,操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议(protocol)

IEEE 802.3
FDDI
ICMP
TCP
HTTP
IP
TIP
DNS
PPPoE
SNMP
UDP


TCP/IP 把与互联网相关联的协议集合起来

  • TCP/IP 的分层管理
    应用层,传输层,网络层,数据链路层。

  • 应用层
    决定了向用户提供应用服务时通信的活动。
    TCP/IP协议族内预存了各类通用的应用的服务。FTP/DNS服务就是其中的两类。
    HTTP协议也处于该层。

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

  • 网络层(又名网络互连层)
    用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。
    与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。

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

TCP/IP 通信传输流

通信传输流
接受HTTP请求
发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。
封装:把数据信息包装起来的做法。


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

  • 负责传输的IP协议
    IP位于网络层
    IP 是一种协议的名称

作用:把各种数据包传送给对方,要确保传送到对方那里的其中两个重要条件是
IP 地址和 MAC 地址(Media Access Control Address)。

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

  • 使用 ARP 协议凭借 MAC 地址进行通信
    IP 间的通信依赖 MAC 地址。
    ARP 协议(Address Resolution Protocol):一种可以用以解析地址的协议,根据通信方的 IP地址就可以反查出对应的 MAC 地址。

  • 没有人能够全面掌握互联网中的传输状况
    路由选择:在到达通信目标前的中转过程中,那些计算机和路由器等网络设备只能获悉很粗略的传输路线。
    传输状态


确保可靠性的 TCP 协议

TCP 位于传输层,提供可靠的字节流服务。
字节流服务Byte Stream Service):为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠地传给对方。
TCP 协议为了更容易传输大数据才把数据分割,而且 TCP 协议能够确认数据最终是否送达到对方。

  • 确保数据能到达目标
    为了准确无误地将数据送达目标处, TCP 协议采用了三次握手策略。
    三次握手
    握手过程中使用了 TCP 的标志——SYN(synchronize)和ACK(acknowledgement)。

负责域名解析的 DNS 服务

DNS 位于应用层,提供域名到 IP 地址之间的解析服务。
计算机既可以被赋予 IP 地址,也可以被赋予主机名和域名。
与 IP 地址的一组纯数字相比,用字母配合数字的表示形式来指定计算机名更符合人类的记忆习惯。
DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。
DNS 服务


各种协议与 HTTP 协议的关系

HTTP 协议的通信过程
URI 和 URL

URL 是使用 Web 浏览器等访问 Web 页面时需要输入的网页地址。

  • 统一资源标识符
    URI (Uniform Resource Identifier),RFC2396对这3个单词进行了定义:
  • Uniform
    规定统一的格式可方便处理多种不同类型的资源,而不用根据上下文环境来识别资源指定的访问方式。另外,加入新增的协议方案(如 http: 或 ftp: )更容易。
  • Resource
    资源的定义是 “ 可标识的任何东西 "。资源可单一,可多数的集合体。
  • Identifier
    表示可标识的对象。也称标识符。

  • URI 就是由某个协议方案表示的资源的定位标识符。协议方案是指访问资源所使用的协议类型名称。
    采用 HTTP 协议时,协议方案就是 http 。除此之外,还有 ftp,mailto,telnet,file 等。
    IANA-Uniform Resource Identifier(URI)SCHEMES(统一资源标识符方案)
    URI 用字符串标识某一互联网资源,而 URL 表示资源的地址(互联网上所处的地址)。
    URL 是 URI 的子集。
    几种URI例子

URI 格式

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

  • 登录信息(认证)
    指定用户名和密码作为从服务器端获取资源时必要的登录信息(身份认证)。此项是可选项。
  • 服务器地址
    使用绝对 URI 必须指定待访问的服务器地址。地址可以是类似 hackr.jp 这种DNS 可解析的名称,或是 192.168.1.1 这类 IPv4 地址名,还可以是[0:0:0:0:0:0:0:1] 这样用方括号括起来的IPv6 地址名。
  • 服务器端口号
    指定服务器连接的网络端口号。可选项,若用户端略则自动使用默认端口号。
  • 带层次的文件路径
    指定服务器上的文件路径来指定特指的资源。这与 UNIX 系统的文件目录结构相似。
  • 查询字符串
    针对已指定的文件路径内的资源,可以使用查询字符串传入任意参数。可选项。
  • 片段标识符
    使用片段标识符通常可标记出已获取资源中的子资源(文档内的某个位置)。但在 RFC 中并没有明确规定其使用方法。可选项。

并不是所有的应用程序都符合 RFC

RFC :用来制定 HTTP 协议技术标准的文档。
应用程序会遵照由 RFC 确定的标准实现。
RFC 是互联网的设计文档,要是不按照 RFC 标准执行,就有可能导致无法通信的状况。
由于不遵照 RFC 标准实现就无法进行 HTTP 协议通信,所以基本上客户端和服务器端都会以 RFC 为标准来实现 HTTP 协议。
未遵守 RFC 标准,反而将自成一套的“标准”拓展的情况。


  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-29 09:42:12  更:2021-08-29 09:43:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 20:40:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计