HTTP详解——HTTP基础

HTTP 基本概念

HTTP 是超文本传输协议 (HyperText Transfer Protocol)

超文本传输协议(HyperText Transfer Protocol)

HTTP 是一个在计算机世界里专门在 两点 之间 传输 文字、图片、音视频等 超文本 数据的 约定和规范

1. 协议

约定和规范

2. 传输

两点之间传输(服务端------服务端,服务端------客户端),中间允许中转

3. 超文本

一种可以包含文本、图片、音频、视频 等多种形式内容的文档,并通过超链接(Hyperlinks) 与其他资源或文档相连接的非线性信息结构

  • 非线性:
    • 超文本允许用户在不同文档、内容之间跳转,而不是按照固定顺序阅读。

HTTP 消息结构

请求消息(Requset)

  1. 请求行
    1. 方法:如 GET、POST、PUT、DELETE 等,指定要执行的操作。

|-------------------|--------------------------------------------------------------------------------|
| 方法 | 描述 |
| GET | 从服务器获取资源。用于请求数据而不对数据进行更改。例如,从服务器获取网页、图片等。 |
| POST | 向服务器发送数据以创建新资源。常用于提交表单数据或上传文件。发送的数据包含在请求体中。 |
| HEAD | 类似于 GET,但服务器只返回响应的头部,不返回实际数据。用于检查资源的元数据(例如,检查资源是否存在,查看响应的头部信息)。 |
| PUT(HTTP/1.1) | 向服务器发送数据以更新现有资源。如果资源不存在,则创建新的资源。与 POST 不同,PUT 通常是幂等的,即多次执行相同的 PUT 请求不会产生不同的结果。 |
| DELETE(HTTP/1.1) | 从服务器删除指定的资源。请求中包含要删除的资源标识符。 |
| PATCH(HTTP/1.1) | 对资源进行部分修改。与 PUT 类似,但 PATCH 只更改部分数据而不是替换整个资源。 |
| OPTIONS(HTTP/1.1) | 返回服务器支持的 HTTP 方法。用于检查服务器支持哪些请求方法,通常用于跨域资源共享(CORS)的预检请求。 |
| TRACE(HTTP/1.1) | 回显服务器收到的请求,主要用于诊断。客户端可以查看请求在服务器中的处理路径。 |
| CONNECT(HTTP/1.1) | 建立一个到服务器的隧道,通常用于 HTTPS 连接。客户端可以通过该隧道发送加密的数据。 |

    1. 请求 URI(统一资源标识符):请求资源的路径,通常包括主机名、端口号、路径和查询字符
    2. HTTP 版本:如 HTTP/1.1 或 HTTP/2
    3. 示例:GET /index.html HTTP/1.1
  1. 请求头(Headers)
    1. 键值对形式的元信息(描述请求、请求端的属性和参数)
    2. 示例:

    Host: www.example.com
    User-Agent: Mozilla/5.0
    Accept: text/html

  1. 空行

    1. 分隔请求头和请求体
  1. 请求体(Body 可选)
    1. 请求端发送的数据(JSON,表单等)
    2. 示例:

    {
    "username": "john",
    "password": "secure123"
    }

响应消息(Response)

  1. 状态行
    1. 协议版本:与请求消息一致
    2. 状态码:三位数,表示请求处理的结果
      1. 常见的状态码
        1. 1xx 类:提示信息,协议处理的中间操作。
        2. 2xx 类:服务器成功处理了客户端请求,成功码
          1. 200 OK:最常见的成功状态码,非 HEAD 请求(类似 GET请求,但只返回 HTTP 响应头,用于检查接收端资源的元信息)响应头带响应体数据。
          2. 204 No Content:成功状态码,但没有响应体数据。
          3. 206 Partial Content:HTTP 分块下载或断点续传,表示 body数据并不是资源全部。
        1. 3xx类:该请求的资源发生了变动,需要用新的 URL重新发送请求来获取资源,即重定向
          1. 301 Moved Permanently永久重定向,说明请求的资源已不存在。
          2. 302 Found临时重定向 ,资源还在,但暂时需要另一个 URL来访问。
          3. 304 Not Modified:不具有跳转含义,表示资源未修改,重定向已存在的缓存文件,即缓存重定向
        1. 4xx类:请求错误码
          1. 400 Bad Request笼统错误
          2. 403 Forbidden禁止访问资源,非请求错误。
          3. 404 Not Found请求资源未找到
        1. 5xx类:请求正确,服务器内部处理出错,服务端错误码
          1. 500 Internal Server Error:与 400一样笼统错误
          2. 501 Not Implemented:该请求的功能还未支持、开发
          3. 502 Bad Gateway网关或代理错误。
          4. 503 Service Unavailable服务繁忙
    1. 状态描述:即状态码后面的描述信息。
  1. 响应头部(Headers)
    1. 键值对形式的元信息(描述响应体、服务端的属性和参数)
    2. 示例:

    Content-Type: text/html
    Content-Length: 137

  1. 空行:Headrs 与 Body 的分隔。

  2. 响应体(Body)可选

    1. 响应的实际内容数据(Html,Json,图片等)
    2. 示例:
    <html> <head><title>Example</title></head> <body>

    Hello, World!

    </body> </html>
相关推荐
zl0_00_05 分钟前
1.14寒假作业
网络
ThisIsClark28 分钟前
如何通过openssl生成.crt和.key
网络协议·https·ssl
LLLuckyGirl~1 小时前
计算机网络之---TCP连接管理
网络·tcp/ip·计算机网络
huhy~1 小时前
OpenStack-Neutron组件
网络·openstack
Cui晨2 小时前
MAC AndroidStudio模拟器无网络
运维·服务器·网络
hong_zc3 小时前
网络原理(四)—— 网络层、数据链路层 与 DNS
网络·dns·数据链路层·网络层
云计算DevOps-韩老师3 小时前
【网络云SRE运维开发】2025第3周-每日【2025/01/14】小测-【第13章ospf路由协议】理论和实操解析
网络·智能路由器·运维开发
打鱼又晒网4 小时前
linux网络 | https前置知识 | 数据加密与解密、数据摘要
网络·网络协议·https
路星辞*4 小时前
PBR(策略路由)的几种使用方式
运维·服务器·网络·安全·pbr