01-http概述

HTTP概述

  • HTTP使用的是可靠地数据传输协议。
  • HTTP属于应用层协议

Web客户端和服务器

  • web服务器:又称http服务器,用于存储web内容,并向web客户端提供web内容
  • web客户端:用于请求web服务器的应用软件,常见为浏览器

资源

媒体类型

MIME类型是一种文本标记,表示一种主要对象类型和一个特定的子类型,用/分隔;

URI(统一资源标识符)

URI的两种形式为:URL与URN

URL(统一资源定位符)
  1. 描述一台特定服务器上某资源的特定位置
  2. 目前几乎所有URI都是URL
  3. 解析URL组成:例如:https://www.baidu.com/img/a.png;
  • 方案,说明访问资源说使用的协议类型。通常为http或https协议,上方为例即:https//
  • 服务器因特网地址(域名):上方为例即:www.baidu.com
  • 指定资源路径:上方为例即:/img/a.png
URN(统一资源名)

作为特定内容的唯一名称使用,与目前资源的所在地无关。目前处于实验阶段,并不推广使用

事务

方法

常见http方法如下:

  • GET:从服务器向客户端发送命名资源
  • PUT:将来自客户端的数据存储到一个命名的服务器资源中去
  • DELETE:从服务器中删除命名资源
  • POST:将客户端数据发送到一个服务器网管应用程序
  • HEAD:仅发送命名资源响应中的HTTP首部

状态码

  • 每条HTTP响应报文返回时都会携带一个状态码
  • 状态码都为三位数值的代码,代表着额定意义
  • 状态码后都会有一条解释性的原因短语
    常见状态码:
  • 200:OK。文档正确返回
  • 302:Redirect(重定向)。到其他地方取资源
  • 404:Not Found(未找到)。无法找到该资源

报文

  • HTTP报文是由一行一行的简单字符串组成的。HTTP报文都是纯文本,不是二进制代码
  • 请求报文(request message):web客户端向web服务器发送的报文
  • 响应报文(response message):web服务器向web客户端发送的报文

http报文的三部分

  1. 起始行:请求报文包含请求路径,请求方法,http协议版本;响应报文包含http协议版本,http状态码,状态码解释短语
  2. 首部字段(header头):每个首部字段都包含一个名字和一个值,使用:分隔,多个字段使用新行分隔,并以空行结束
  3. 主体:请求报文包含发送给web服务器的数据;响应报文包含发送给客户端的数据

链接

TCP/IP

TCP特点

  • 无差错的数据传输
  • 按序传输(数据按照发送的顺序到达)
  • 未分段的数据流(可以在任意时刻以任意尺寸将数据发送出去)
    HTTP协议栈

连接、IP和端口号

http链接无端口号时,默认端口号为80

协议版本

按照时间顺序如下:

  • HTTP0.9:只支持GET方法,不支持多媒体的MIME内容,各种HTTP首部与版本号,只应该用于与老的客户端进行连接
  • HTTP1.0:添加了版本号,各种HTTP首部,一些额外的方法,以及多媒体对象的处理
  • HTTP1.1:重点关注的是校正HTTP设计中的结构性缺陷,明确语义,引入重要的性能优化措施,并删除一些不好的特性
  • HTTP2.0(HTTP-NG):目前仍在实验中。重点关注性能的大幅优化,以及更强大的服务逻辑远程执行框架

web的结构组件

代理

位于客户端和服务端之间的HTTP中间实体

缓存

HTTP的仓库,使常用页面的副本可以保存在离客户端更近的地方

网关

连接其他应用程序的特殊web服务器

隧道

对HTTP通信报文进行盲转发的特殊代理

Agent代理

发起自动http请求的半智能web客户端

相关推荐
西岸行者12 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意12 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码12 天前
嵌入式学习路线
学习
毛小茛12 天前
计算机系统概论——校验码
学习
babe小鑫12 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms12 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下12 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。12 天前
2026.2.25监控学习
学习
im_AMBER12 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J12 天前
从“Hello World“ 开始 C++
c语言·c++·学习