《Linux网络开发必学教程》25_Http 协议基础

Http 是什么?

  • Http 作为 WWW 的重要组成部分被提出(World Wide web)
  • 而当时的 WWW 是为了帮助研究者更好的进行知识共享
  • 基本理念:文档之间的相互关联形成超文本,最终连城相互参阅的 WWW
  • Http (Hyper Text Transfer Protocol)用于定义文档之间如何跳转,即:文档传输协议

《Linux网络开发必学教程》25_Http 协议基础_第1张图片

Http 是什么?

Http 是位于 TCP/IP 之上的应用层通讯协议

《Linux网络开发必学教程》25_Http 协议基础_第2张图片

Http 世界中的“重要角色”

  • 域名解析服务器 (DNS - Domain Name System)
  • DNS 是位于 TCP/IP 之上的应用层协议
  • DNS 提供域名到 IP 地址之间的解析服务

主机 IP 地址查找过程

《Linux网络开发必学教程》25_Http 协议基础_第3张图片

域名 VS 网络地址

  • 每一台网络中的主机都有一个地址(唯一标识,即:IP 地址)
  • 为了方便记忆,可通过域名访问网络上的目标主机
  • 域名是字母与数字的组合,如:dt4sw.com
  • DNS 可通过域名查找 IP 地址,也可逆向从 IP 地址反查域名

初见 URI 和 URL

  • URI : 统一资源标识符(Uniform Resource Identifier)

    • 由某种规则定义的资源标识符
    • 通过字符串标识资源(即:URI 的表现形式为字符串)
    • 例:

      • dev:app:py4oh:files
      • http://dt4sw.com/index.html
      • mailto:[email protected]
      • telnet://193.168.3.11
      • tel:+86-159xxx0426
    URL 不限于标识互联网资源,它可以用于定义所有资源的标识符

深入理解 URI 与 URL

  • URL 是一种特殊的 URI, 它是 URI 的一种应用形式
  • URI 不一定是 URL,而 URL 一定是 URI
  • URL 是绝对的,提供访问到确切资源的具体路径(全网唯一)
  • URL 既有相对性又有绝对性

    • 相对性:通过上下文条件与 URI 可确定具体资源
    • 绝对性:直接通过 URI 自身的信息可确定具体资源

URL 详解

http://www.dt4sw.com:80/index.html

http, URI规则 : URL 中特定于 Http 或 Https
www.dt4sw.com, 主机名 :可以是主机域名或主机 IP 地址
80, 端口号: Http 基于 TCP/IP, 端口号概念相同
/index.html,文件路径 :所请求的资源在主机系统中的相对路径 

Http 的协议简介

  • Http 以 TCP 为底座,通过 C/S 模式与服务器进行通讯
  • Http 请求必然从客户端发出,服务端响应请求后断开连接
  • 工作模式:请求 ←→ 响应 且 不保存状态

《Linux网络开发必学教程》25_Http 协议基础_第4张图片

  • Http 是基于文本的协议(Http 协议细节具备可读性)

《Linux网络开发必学教程》25_Http 协议基础_第5张图片

《Linux网络开发必学教程》25_Http 协议基础_第6张图片

Http 响应状态

状态码 类别 解释 示例
1xx Informational(信息状态码) 请求正在被处理 100 101
2xx Success(成功状态码) 请求正常处理完毕 200 204 206
3xx Redirection(重定向状态码) 需要附加操作以完成请求 400 404
4xx Client Error(错误状态码) 服务器无法处理请求 400 404
5xx Server Error(错误状态码) 服务器请求出错 500 503

小结

  • WWW 最初由 Http, URL, HTML 三个重要组成部分
  • Http 是基于 TCP 的应用层文本协议
  • URL 是网络资源的 “绝对地址”,指向某个主机上的文件资源
  • HTML 用于格式化 Http 响应消息中的消息体
  • Http 协议中的状态处理是服务器设计中的关键

你可能感兴趣的:(clinux网络编程)