首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Http数据包(小迪网络安全笔记~

  • 25-01-22 05:43
  • 3184
  • 6897
blog.csdn.net

附:完整笔记目录~
ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正!

5.1 Http数据包

  1. 引子:上文说过,网络间大都靠数据包进行通信,而在应用层中被使用最多的数据包则为Http数据包,在第二章曾介绍了如何借助工具对Http数据包进行拦截。本篇则对Http数据包格式、内容等进行总结。

  2. 概述:已知Http协议为单向请求,即请求只能由客户端向服务端发起,服务端收到请求后将处理后的结果返回给客户端,此时Http协议断开。而在这段Http协议工作的过程中,我们可以注意到共有两次数据报文的传递,称由客户端向服务端发送的数据报文为请求报文(Request),服务端返回给客户端的数据报文为响应报文(Response)。
    本篇则依次对请求报文&响应报文格式、各部分内容进行介绍。(下文分别以请求包&响应包称呼请求报文&响应报文,这俩一个东西)

  3. 请求包格式:请求行,请求头(,空行,请求体)→ 仅在POST/PUT方法存在
    其中请求行又由:请求方法、URL和Http协议版本组成,以下为一个典型的Http请求包
    image-20241206183629714

  4. 请求行→请求方法
    概念:请求方法是请求行的第一个参数。Http协议支持多种请求方法,在Http/1.1及以上版本中,支持GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT方法。其中最常用的方法则为GET、POST方法。
    开发者可针对不同的应用场景使用不同的请求方法,相应的我们也可以根据不同的功能点去推断所使用的请求方法是什么。

    请求方法含义
    GET用于从服务器请求指定资源,如请求网页内容等。请求数据被包含至URL中,
    而一般情况下浏览器/服务器对接收URL有位数限制,因此请求数据不宜过长。
    POST用于向服务器发送数据,如用户登录、文件&表单上传等。发送的数据被包含至请求体中,
    而请求体对数据量无限制,因此也解决了大量数据传输的问题。
    HEAD与GET类似,只不过服务器在接收HEAD类型的请求时,仅会返回状态行&响应头不会返回响应体。
    PUT与POST类似,用于向服务器上传资源。
    只不过PUT在请求包中往往会指定资源的存放路径,而POST则由服务器决定。
    DELETE用于在服务器中删除指定资源。
    OPTIONS用于查询服务器支持的HTTP方法。
    TRACE用于回显服务器收到的请求。
    CONNECT预留给能够将连接改为隧道方式的代理服务器使用,
    常用于非加密代理服务器与TLS加密服务器间的通信。
  5. 请求头
    概念:请求头由 键: 值 组成,每行一对。

    请求头含义
    Connection表示客户端与服务器的连接方式。(keep-alive:当前请求完成
    后保持连接(不断开TCP连接),close:当前请求完成后关闭连接)
    Accept表示浏览器接受的数据类型。
    Accept-Encoding表示浏览器接受的数据压缩格式。
    Accept-Language表示客户端所偏好的自然语言&区域。
    User-Agent表示客户端操作系统&浏览器类型。
    Host表示当前请求访问的目标地址。
    Authorization表示用户身份认证信息。
    Cookie当前浏览器保存的Cookie信息。(常被用于身份鉴权)
    Referer表示当前请求的来源页面。(常用于防盗链,
    这也是md写博客时外链图片引用失效的原因。)
    Origin表示当前请求的来源域。(与Referer相比,Referer显示来源
    的详细信息包括路径&参数等,而Orgin仅显示基本来源域信息。)
    Content-Type表示客户端发送请求体类型。
    Content-Length表示客户端发送请求体长度。
  6. 请求体:常被应用于POST/PUT请求方法,表示由客户端向服务器发送的数据。

  7. 响应包格式:状态行,响应头,空行,响应体
    其中状态行又由:Http/版本、状态码、状态描述组成,以下为一个典型的Http响应包。
    image-20241207195253114

  8. 状态行→状态码

    1. 概念:服务器返回给客户端的数字,表示服务器对本次请求的处理结果。
    2. 1xx:信息性响应,表示请求已接受,需继续处理。
      1. 100:表示服务器已接受请求初始部分,客户端可发送剩余请求。
      2. 101:表示服务器同意协议切换,如Http切换至WebSocket。
    3. 2xx:成功响应,表示请求已被成功接收。
      1. 200:表示请求成功,服务器返回请求资源。(常用于GET&POST)
      2. 201:表示请求成功,且资源已创建。(常用于POST&PUT)
      3. 202:表示接收请求,但尚未处理。
      4. 204:表示请求成功,但未返回内容。(常用于DELETE)
    4. 3xx:重定向
      1. 301:永久重定向,常被应用于老页面不再使用,需用户访问新页面。
      2. 302:临时重定向,常被应用于老页面暂时不使用,需用户访问新页面。
      3. 303:临时重定向,同302,但规定请求方法为GET。
    5. 4xx:客户端错误,表示请求有语法错误或无法被实现。
      1. 400:表示请求语法错误或参数不合法。
      2. 401:表示请求未通过认证。
      3. 403:表示服务器收到请求,但拒绝提供服务。
      4. 404:表示请求资源不存在。
      5. 405:表示请求方法不被允许。
    6. 5xx:服务端错误,表示服务器未能实现合法请求。(通俗来说,就是服务器在处理请求时出错)
      1. 500:表示服务器发生不可预知错误。
      2. 503:常表示服务器处于超载或维护,暂时无法处理请求,一段时间后可能恢复。
      3. 505:表示服务器不支持请求使用的Http协议版本。
  9. 响应头
    基本同请求头,这里额外提一下Set-Cookie:表示服务器向客户端设置一个或多个Cookie,客户端在接收到该响应头后保存Set-Cookie值内容。

  10. 响应体:表示由服务端返回给客户端的数据。
    注:本篇所提客户端,其大多是指客户端上的浏览器。

注:本文转载自blog.csdn.net的1999er的文章"https://blog.csdn.net/qq_62040731/article/details/144322783"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top