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

HTTP详细总结

概念

HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。

特点

  • 基于TCP协议: 面向连接,安全

    TCP是一种面向连接的(建立连接之前是需要经过三次握手)、可靠的、基于字节流的传输层通信协议,在数据传输方面更安全。

  • 基于请求-响应模型的:一次请求对应一次响应

    请求和响应是一一对应关系

  • HTTP协议是无状态协议:对于事物处理没有记忆能力。每次请求-响应都是独立的

    无状态指的是客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息。这种特性有优点也有缺点,

    • 缺点:多次请求间不能共享数据

    • 优点:速度快

请求数据格式

请求数据总共分为三部分内容,分别是请求行请求头请求体

  • 请求行: HTTP请求中的第一行数据,请求行包含三块内容,分别是 GET[请求方式] /[请求URL路径] HTTP/1.1[HTTP协议及版本]

    请求方式有七种,最常用的是GET和POST

  • 请求头: 第二行开始,格式为key: value形式                                                                            请求头中会包含若干个属性,常见的HTTP请求头有:

    Host: 表示请求的主机名
    User-Agent: 浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0 ...Chrome/79,IE浏览器的标识类似Mozilla/5.0 (Windows NT ...)like Gecko;
    Accept:表示浏览器能接收的资源类型,如text/*,image/*或者*/*表示所有;
    Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;
    Accept-Encoding:表示浏览器可以支持的压缩类型,例如gzip, deflate等。

  • 请求体: POST请求的最后一部分,存储请求参数

    如上图红线框的内容就是请求体的内容,请求体和请求头之间是有一个空行隔开。此时浏览器发送的是POST请求,为什么不能使用GET呢?这时就需要回顾GET和POST两个请求之间的区别了:

    • GET请求请求参数在请求行中,没有请求体,POST请求请求参数在请求体中

    • GET请求请求参数大小有限制,POST没有

响应数据格式

响应数据总共分为三部分内容,分别是响应行响应头响应体

  • 响应行:响应数据的第一行,响应行包含三块内容,分别是 HTTP/1.1[HTTP协议及版本] 200[响应状态码] ok[状态码的描述]

  • 响应头:第二行开始,格式为key:value形式

    响应头中会包含若干个属性,常见的HTTP响应头有:

    Content-Type:表示该响应内容的类型,例如text/html,image/jpeg;
    Content-Length:表示该响应内容的长度(字节数);
    Content-Encoding:表示该响应压缩算法,例如gzip;
    Cache-Control:指示客户端应如何缓存,例如max-age=300表示可以最多缓存300秒
    
  • 响应体: 最后一部分。存放响应数据

    上图中<html>...</html>这部分内容就是响应体,它和响应头之间有一个空行隔开。

http://www.lryc.cn/news/380731.html

相关文章:

  • 【Android】代码中将 SVG 图像转换颜色
  • 网络故障排查-TCP标志位
  • [Vue3+Vite+TS] Windows用户设置 VITE_CJS_TRACE=true 标志运行你的脚本来记录堆栈跟踪
  • Prompt 写作提示经验:完整格式和技巧
  • 预训练是什么?
  • 深入解析Linux Bridge:原理、架构、操作与持久化配置
  • 使用构建缓存优化 Docker 镜像构建
  • 微软搁置水下数据中心项目——项目纳蒂克相比陆地服务器故障更少
  • 国产AI算力训练大模型技术实践
  • DS:二叉树的链式存储及遍历
  • C#中File类常见用法总结
  • CesiumJS【Basic】- #007 绘制直线段以避免地球曲率的影响
  • 解决文件或文件夹无法删除问题
  • 【报错】JDBC SQL语句表名报错 解决办法
  • 【Nvidia+AI摄像头】面向机器人双目视觉相机
  • Hive数据锁问题处理
  • 使用VisualBox+Vagrant搭建Centos虚拟机环境
  • PHP框架之Yii框架
  • 数组元素去重
  • Redis 的安装与部署
  • Applied Spatial Statistics(七):Python 中的空间回归
  • 如何关闭软件开机自启,提升电脑开机速度?
  • 如何培养员工的竞争意识
  • 2025秋招NLP算法面试真题(二)-史上最全Transformer面试题:灵魂20问帮你彻底搞定Transformer
  • redis初步认识(一)
  • Android 开发必备知识点及面试题汇总(Android+Java+算法+性能优化+四大组件……
  • 安装Cmakeffmpeglibssh
  • 计算机网络实验(9):路由器的基本配置和单臂路由配置
  • ArcGIS与Excel分区汇总统计三调各地类面积!数据透视表与汇总统计!
  • QML 中宽度、高度与隐式宽度/高度的区别及其应用场景