HTTP协议

HTTP协议

  • 网络通信分层

    • image

  • 一个http请求的分层解析流程

    • image

    • image

      • 当用户访问一个网站时,首先输入访问的 URL,先通过 DNS 进行域名解析,将域名解析成对应的 IP 地址
      • 经过解析之后,浏览器会发起一个 TCP 的连接请求
      • 服务器接受请求后,通过三次握手建立连接
      • 客户端在确认建立连接成功后,向服务端发送 HTTP 请求格式的数据包
      • 服务器端解析 HTTP 数据包,执行用户的这次请求并生成一个 HTTP 响应格式的数据包,发送给客户端
      • 浏览器在收到服务器端的数据包之后再进行解析,再通过 HTML 格式呈现给用户
      • 客户端再通过四次握手释放连接
  • 基础介绍

    • 定义

  HTTP是一种无状态的、基于请求-响应模式的协议,最初设计用于传输超文本(如HTML文档),现在已支持任意类型的数据传输。

    • 特点

      • 无连接​:早期版本每次请求建立新连接,HTTP/1.1支持持久连接
      • ​无状态​:服务器不记录客户端状态信息
      • ​媒体独立​:可传输任意类型数据
      • ​支持C/S架构​:客户端-服务器模型
    • 报文格式

      • 请求报文和相应报文基本相同,包括

        • 起始行:描述请求和相应的基本信息
        • 头部字段集合:使用key_value形式详细的说明报文
          • 通用头部字段

            • Cache-Control:缓存控制

            • Connection:连接管理

            • Date:消息创建时间

          • 请求头部字段

            • Accept:可接受的媒体类型

            • Authorization:认证信息

            • User-Agent:客户端信息

          • 响应头部字段

            • Server:服务器信息

            • Set-Cookie:设置Cookie

            • Location:重定向目标

        • 消息正文:实际传输的消息,纯文本、图片、视频等二进制
        • image

      • 请求报文格式

        • image

        • 组成部分:请求行 请求头 请求体
        • 请求格式
          • 请求方法

            • ​GET​:获取资源
            • ​POST​:提交数据
            • ​PUT​:更新完整资源
            • ​DELETE​:删除资源
            • ​PATCH​:部分更新资源
            • ​HEAD​:获取头部信息
            • ​OPTIONS​:查询支持的方法
          • 请求目标
          • 版本号
      • 相应报文格式

        • 版本号:HTTP协议版本

        • 状态码:一个三位数,表示处理结果

          • 状态码范围

            • 1xx​:信息性状态码

            • 2xx​:成功状态码

            • ​3xx​:重定向状态码

            • ​4xx​:客户端错误状态码

            • ​5xx​:服务器错误状态码

          • 常用状态码

            • 200 OK:请求成功

            • 301 Moved Permanently:永久重定向

            • 400 Bad Request:错误请求

            • 404 Not Found:资源未找到

            • 500 Internal Server Error:服务器内部错误

        • 原因:状态码的补充

    • HTTP版本演进

      • HTTP/0.9
        • 简单协议,只支持GET方法
        • 无头部字段,无状态码
      • HTTP/1.0
        • 引入方法、状态码、头部字段
        • 每次请求建立新连接
      • HTTP/1.1(当前主流)
        • 持久连接
        • 管道化
        • 分块传输编码
        • 缓存优化
      • HTTP/2
        • 二进制分帧
        • 多路复用
        • 头部压缩
        • 服务器推送
      • HTTP/3
        • 基于QUIC协议(UDP)
        • 改进连接建立
        • 更好的移动网络支持
    • Cookie和Session

      • Cookie机制
        • 服务器通过Set-Cookie头部设置
        • 客户端自动在请求中携带Cookie
        • 用于状态保持
      • Session机制
        • 服务器端存储用户状态
        • 通过Session ID标识
  • 关于URL

    • URL 概述

URL(Uniform Resource Locator),即 统一资源定位器,是因特网的万维网服务程序上用于指定信息位置的表示方法。

    • URL组成

  URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。也可认为由4部分组成:协议、主机、端口、路径。

      • http://host[:port]/[a_path]
        http://IP(主机名/域名):端口/访问的资源路径
        
        http 表示要通过 HTTP 协议来定位网络资源;
        host 表示合法的 Internet 主机域名或者IP地址;
        port 指定一个端口号,端口号为空则使用缺省端口 80;
        a_path 指定请求资源的 URl;如果 URL 中没有给出 a_path,那么当它作为请求 URl 时,必须以 “/” 的形式给出,通常这个工作浏览器自动帮我们完成。

         

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2025-11-09 15:18  直至成伤  阅读(11)  评论(0)    收藏  举报