当前位置: 首页 > news >正文

HTTP中传输协议的数据格式

文章目录

    • HTTP
      • Request:请求消息数据格式
      • Response:响应消息数据格式

HTTP

  • 概述:超文本传输协议(Hyper Text Transfer Protocol)

  • 传输协议:定义了客户端和服务器通信时,发送数据的格式

  • 客户端和服务器端交互:客户端向服务器端发送请求,服务器端向客户端响应请求

  • HTTP特点:

    • 基于 TCP/IP 的高级协议
    • 默认端口号:80
    • 基于请求/响应模型的-一次请求对应一次响应
    • 无状态的:每次请求之间相互独立,不能交互数据

Request:请求消息数据格式

  • 概述:客户端发送给服务器端的数据

  • 请求行的格式

    GET /login.html HTTP/1.1				 // 请求方式 请求url 请求协议/版本
    
  • 请求方式:HTTP协议中有 7 种请求方式,常用的有下边 2种

    • GET
      • 请求参数在请求行中,在URL后
      • 请求的URL长度有限制
      • 不太安全
    • POST
      • 请求参数在请求体
      • 请求的URL长度没有限制
      • 相对安全
  • 请求头:客户端浏览器告诉服务器一些信息

    • 请求头格式

      • 请求头名称:请求头值
    • 常见的请求头

      • User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息,可以在服务器端获取该头的信息,解决浏览器的兼容性问题

      • Referer:告诉服务器,当前请求从哪里来,可以用于防盗链和统计工作

  • 请求空行:用来分割 POST 请求的请求头和请求体的

  • 请求体(正文):封装 POST 请求消息的请求参数

  • 示例代码

    POST /login.html	HTTP/1.1									// 请求行
    Host: localhost                                                 // 请求头
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Referer: http://localhost/login.html
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1//	请求空行	
    username=zhangsan	                                    //  请求体
    

Response:响应消息数据格式

  • 概述:服务器端发送给客户端的数据

  • 响应行:

    • 格式:协议/版本 响应状态码 状态码描述
    • 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态,状态码都是 3 位数字
    • 响应状态码分类:
    响应状态码作用
    1xx服务器接收客户端的消息,但没有接收完成,等待一段时间后,发送 1xx 状态码
    2xx成功,状态码:200
    3xx重定向,代表:302(重定向),304(访问缓存)
    4xx客户端错误,代表:404(请求路径没有对应的资源),405(请求方式没有对应的 doXxx方法)
    5xx服务器端错误,代表:500(服务器内部出现异常)
  • 响应头:

    • 格式:头名称:值
    • 常见响应头:
    响应头名称作用
    Content-Type服务器告诉客户端本次响应体数据格式以及编码格式
    Content-disposition服务器告诉客户端以什么格式打开响应体数据
    响应头的名称响应头的值响应值的作用
    Content-Typetext/plain纯文本格式,适合显示普通文本内容
    text/htmlHTML格式,用于显示网页内容
    application/jsonJSON格式,用于传输和解析 JSON 数据
    application/xmlXML格式,用于传输和解析 XML 数据
    application/pdfPDF格式,用于传输和现实 PDF 文档
    image/jpegJPEG图像格式,用于传输和显示 JPEG 图片
    image/pngPNG图像格式,用于传输和显示 PNG 图片
    audio/mpegMPEG 音频格式,用于传输和播放音频文件
    video/mp4MP4 视频格式,用于传输和播放视频文件
    multipart/form-data用于在 HTTP POST 请求中上传文件和表单数据
    Content-dispositionin-line默认值,在当前页面内打开
    attachment;filename=xx以附件形式打开响应体。文件下载
  • 响应空行

  • 响应体:通过POST方式传输的数据

  • 示例代码

    HTTP/1.1 200 OK									// 响应体
    Content-Type: text/html;charset=UTF-8			// 响应头,html 方式传输
    Content-Length: 101
    Date: Wed, 06 Jun 2018 07:08:42 GMT<html>
    <head>
    <title>响应消息</title>
    </head>
    <body>hello , response
    </body>
    </html>
    

相关文章:

  • 数字化时代下如何做好事件营销?
  • 市场复盘总结 20240206
  • QT 应用程序中集成浏览器
  • 数据库学习笔记2024/2/5
  • 阅读笔记——《RapidFuzz: Accelerating fuzzing via Generative Adversarial Networks》
  • 算法学习——华为机考题库10(HJ64 - HJ69)
  • CTF-show WEB入门--web21
  • Oracle分析SQL执行调优
  • 为什么说Python语法简单?
  • Redis核心技术与实战【学习笔记】 - 28.Redis 6.0新特性(多线程、客户端缓存与安全)
  • NLP_词的向量表示Word2Vec 和 Embedding
  • MySQL 用户管理
  • 基于SSM的便民自行车管理系统的开发与实现(有报告)。Javaee项目。ssm项目。
  • 如何从dockerhub 中运行一个简单项目
  • 基于单片机的智能寻光小车设计
  • CSS 专业技巧
  • IDEA 插件开发入门教程
  • java 多线程基础, 我觉得还是有必要看看的
  • pdf文件如何在线转换为jpg图片
  • Python学习笔记 字符串拼接
  • 分享几个不错的工具
  • 实习面试笔记
  • 我有几个粽子,和一个故事
  • 用element的upload组件实现多图片上传和压缩
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #1015 : KMP算法
  • #android不同版本废弃api,新api。
  • #pragma once与条件编译
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (1)STL算法之遍历容器
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (四) 虚拟摄像头vivi体验
  • (转)创业的注意事项
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET 中创建支持集合初始化器的类型
  • .net(C#)中String.Format如何使用
  • .Net(C#)自定义WinForm控件之小结篇
  • .net访问oracle数据库性能问题
  • .net经典笔试题
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET企业级应用架构设计系列之结尾篇
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解
  • [Android 数据通信] android cmwap接入点
  • [BZOJ4010]菜肴制作
  • [C++数据结构](31)哈夫曼树,哈夫曼编码与解码
  • [DP 训练] Longest Run on a Snowboard, UVa 10285