应用层协议HTTP

一.HTTP基本概念和用途

HTTP(超文本传输协议),他定义了客户端(浏览器)与服务器之间是如何的通信的,用以交换或传输超文本(像是HTML文档)

HTTP协议规定了客户端向浏览器发送请求,服务器收到客户端请求后进行处理并响应。

HTTP协议是一个无连接,无状态的协议,所以每次的请求都需要重新建立http连接,并且服务器不会保存客户端的信息

二.什么是url

我们常说的网址就是url

URI(Uniform Resource Identifier)和URL(Uniform Resource Locator)是两个容易混淆但又有区别的概念。以下是它们的具体区分:

1. 定义差异

  • URI(统一资源标识符)

    • 示例:urn:isbn:0451450523(这是一本书的URN标识符)
  • URL(统一资源定位符):是URI的一个子集,不仅标识资源,还提供访问该资源的具体位置和方法。url也是uri的一种

    • 示例:https://www.example.com/index.html(这是一个网页的具体访问地址)

2. 功能特点

  • URI可能包含:

    • URN(统一资源名称):仅标识资源而不指定位置,如urn:issn:0167-6423
    • URL:既标识又定位资源
  • URL必须包含:

    • 访问协议(如http/https/ftp)
    • 主机地址(如www.example.com
    • 具体路径(如/index.html)

3. 结构对比

典型URL结构示例:

复制代码
https://www.example.com:443/path/to/resource?query=string#fragment
  \___/   \_____________/\__/\_______________/\_________/\________/
  协议       主机       端口     路径          查询参数    片段标识

而URI的结构范围更广,可以是:

  • 上述完整的URL
  • 或简短的URN格式:mailto:user@example.com

4. 实际应用场景

  • 当需要精确访问网络资源时使用URL

  • 当需要持久标识而不关心位置时使用URI:

三.HTTP各种常见的方法

form 表单链接 https://www.runoob.com/html/html-forms.html

GET

get用于请求url的指定资源,指定资源会经过服务器解析后返回响应内容

GET /index.html HTTP/1.1

POST

通常用来提交数据 传输实体的主体

POST /submit.cgi HTTP/1.1

put

用于传输文件 将文件保存在url指定的位置

PUT /example.html HTTP/1.1

类似与get获取报文资源,head不返回报文全部,只返回报头

delete

删除文件,与put作用相反

options

⽤于查询针对请求URL指定的资源支持的方法,也就是返回post,get等

四.HTTP的状态码

常见的HTTP状态码

1xx 信息类状态码

  • 100 Continue:服务器已收到请求头,客户端应继续发送请求主体
  • 101 Switching Protocols:服务器已理解客户端请求,并将通过Upgrade消息头通知客户端采用不同的协议来完成请求

2xx 成功类状态码

  • 200 OK:请求成功(GET请求的资源,POST/PUT/PATCH请求处理完成)
  • 201 Created:请求已被实现,且新资源已被创建(常见于POST/PUT请求)
  • 202 Accepted:服务器已接受请求,但尚未处理完成
  • 204 No Content:服务器成功处理请求,但不需要返回任何实体内容

3xx 重定向类状态码

  • 301 Moved Permanently:请求的资源已永久移动到新位置
  • 302 Found:请求的资源临时从不同的URI响应请求
  • 304 Not Modified:资源未被修改,可使用缓存的版本
  • 307 Temporary Redirect:临时重定向,请求方法和请求体不变

4xx 客户端错误类状态码

  • 400 Bad Request:请求语法错误,服务器无法理解
  • 401 Unauthorized:请求需要用户认证
  • 403 Forbidden:服务器理解请求但拒绝执行
  • 404 Not Found:服务器找不到请求的资源
  • 405 Method Not Allowed:请求方法被禁止
  • 408 Request Timeout:服务器等待请求时超时
  • 429 Too Many Requests:用户在给定的时间内发送了太多请求

5xx 服务器错误类状态码

  • 500 Internal Server Error:服务器遇到意外情况无法完成请求
  • 502 Bad Gateway:服务器作为网关或代理,从上游服务器收到无效响应
  • 503 Service Unavailable:服务器暂时过载或维护中
  • 504 Gateway Timeout:服务器作为网关或代理,未及时从上游服务器获取请求

五.HTTP协议的常见Header

Content-Type: 指定数据格式(如text/html)

• Content-Length: 表示请求/响应主体的字节长度

• Host: 指明请求的目标主机和端口号

• User-Agent: 提供客户端操作系统和浏览器版本信息

• Referer: 记录跳转到当前页面的来源地址

• Location: 配合3xx状态码使用,指示客户端重定向目标地址

• Cookie: 客户端存储机制,常用于会话(session)管理

connection报头

HTTP中的Connection字段是报文头部的重要组成部分,用于管理客户端与服务器之间的连接状态。

该字段的主要功能是控制持久连接,允许多个客户端请求共享同一个TCP连接。在完成请求响应后,连接不会立即断开,从而实现单个连接上的多次请求与响应交互。

版本差异:

  • HTTP/1.1:默认采用持久连接机制。只要客户端和服务器未明确要求关闭连接,该连接就会保持开启状态,供后续请求复用。
  • HTTP/1.0:默认使用非持久连接。如需启用持久连接功能,必须在请求头中显式添加"Connection: keep-alive"字段。
相关推荐
andxe17 小时前
安科士 AndXe 技术博客:400G QSFP112 SR4 光模块|AI 算力与超算短距互联最优方案
网络·人工智能·光模块·光通信
shiyi.十一18 小时前
第2章:应用层 — 知识要点与架构
网络·计算机网络·架构
DFT计算杂谈19 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
水境传感 李兆栋19 小时前
GNSS 位移监测站 :毫米级感知,筑牢安全监测防线
网络
中微极客20 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
猿的天空1 天前
机器人双手迎来全栈训练系统:灵初智能EgoSteer让灵巧手无所不能
网络·人工智能·计算机·ai·程序员·机器人·编程
Xzaveir_7771 天前
OPPO、vivo、荣耀号码认证:多终端拨测矩阵与异常复现
大数据·网络·科技·矩阵·产品经理·ai-native
wuqingshun3141591 天前
从网络角度来看,用户从输入网址到网页显示,期间发生了什么?
网络
牛马工作号1 天前
Zigbee 专业详解:从协议到排障
网络·物联网·安全
牛马工作号1 天前
Wi‑Fi 完全指南:从 802.11 协议到 Wi‑Fi 7、AC+AP 与 Mesh 工程组网
网络·网络协议·智能路由器