http协议的简单总结

news2025/1/18 8:55:06

目录

1.http协议的特性

2.http协议的请求

3.get请求和post请求的区别

4.http协议的响应


1.http协议的特性

http协议是建立在TCP/IP协议之上应用层协议,默认端口为80,8080

http协议的的特点是无状态,无连接(短连接)

2.http协议的请求

http协议的报文传输的是ASCII码,在TCP/IP协议之上,主要主要分为三部分

请求行、请求头、请求体

请求行

第一行,包含三个信息:请求方式,url,http协议版本

请求头

浏览器向服务器发送一些状态数据,标识数据等等

一个信息一行,包括信息名:信息值 按行分隔

HTTP请求报文示意图如下:

①,②和③属于请求行;④属于请求头;⑤属于报文体

3.get请求和post请求的区别

1、url可见性:

get,参数url可见;

post,url参数不可见 

2、数据传输上:

get,通过拼接url进行传递参数;

post,通过body体传输参数

3、缓存性:

get请求是可以缓存的

post请求不可以缓存

4、后退页面的反应

get请求页面后退时,不产生影响

post请求页面后退时,会重新提交请求

5、传输数据的大小

get一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大)

post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。

6、安全性

这个也是最不好分析的,原则上post肯定要比get安全,毕竟传输参数时url不可见,但也挡不住部分人闲的没事在那抓包玩。安全性个人觉得是没多大区别的,防君子不防小人就是这个道理。对传递的参数进行加密,其实都一样。

本质区别:

GET产生一个TCP数据包;POST产生两个TCP数据包。

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

4.http协议的响应

HTTP的响应报文也由三部分组成(响应行+响应头+响应体):

响应行

响应行包括:协议版本、状态码、状态消息

典型的:

1xx:消息

2xx:成功

3xx:请求被重定向

4xx:浏览器端错误

5xx:服务器端错误

典型:

500 服务器内部错误

404 请求的页面没有找到

403 没有权限

200 请求成功

响应头

Content-Type: text/html 内容类型,告知浏览器接下来发送的响应主体数据是什么格式!

Content-Length: 响应主体数据的长度!

Date: 响应的时间。GMT时间!

响应主体

主要的响应数据,在浏览器的主体区域显示的数据都是相应主体!

注意,每行,包括相应行和响应头,都需要一个 \r\n结尾

HTTP响应报文示意图如下:

 其中,①,②属于响应行;③属于响应头;④属于响应主体

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/158588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【面试题】京东面试查漏补缺

目录一:笔试题1.如何获取URL中的参数方法一方法二2.怎么平铺多维数组方法一方法二:递归方法三: flat() 和 flatMap()二:面试题1.promise相关问题2.vue nextTick的作用和原理3.http状态码304缓存相关问题4.其他常规问题省略wh零售事…

在线学习(online learning)——Chapter 2 Problem Formulations and Related Theory

在线学习(online learning)——Chapter 2 Problem Formulations and Related Theory 本章中,我们将首先给出一个经典的在线学习问题的形式化描述,即在线二分类(online binary classification),然后介绍统计学习理论、在线凸优化和博弈论的基…

Zabbix“专家坐诊”第179期问答汇总

欢迎大家加入乐维社区zabbix问答专栏,除了在论坛发帖求问外,还可以在QQ群里交流进步,并且每周三我们会进行免费的技术答疑活动。 问题一: Q:Zabbix alert syncer processes more than 75% busy,这个告警&…

Live800:优秀的在线客服系统配置哪些功能模块?

在线客服系统是企业客服解决客户疑惑的软件系统,是企业统一对外联系的窗口。为了提升客户服务质量,提高客服人员工作效率,越来越多的企业配置了在线客服系统。那一款优秀的在线客服系统需要配置哪些功能模块呢?一、在线沟通模块在…

简明精要Android IPC通信

目录 一、Android应用层IPC通信方式 二、IPC通信数据拷贝次数 这里指的从应用层角度,IPC通信方式。简单记录一下。 一、Android应用层IPC通信方式 Bundle:四大组件中的三大组件(Activity、Service、Receiver)都是支持在Intent中…

MySQL学习之一条SQL更新语句的执行

文章目录前言一、MySQL更新操作大致流程二、redo log介绍三、binlog介绍四、MySQL更新操作的具体流程前言 今天我们通过一条SQL更新语句,了解MySQL的日志系统 一、MySQL更新操作大致流程 更新数据库表上的操作,跟这个表有关的查询缓存会失效。这条语句…

MyBatisPlus(MP)学习记录(分页查询的开启+日志打印配置+乐观锁+映射匹配+字段匹配和表名匹配+null值判定+代码生成器等等)

MP介绍(官网链接) MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 前言 本篇文章展示的MP教学中涉及到的版本如下: IDE…

Unity 之 Addressable可寻址系统 -- 可寻址系统概念介绍 -- 入门(一)

可寻址系统面板概念 -- 入门(一)一,可寻址系统概念介绍1.1 官方话术1.2 几个概念二,可寻址系统目录介绍2.1 导入工程2.2 目录介绍概述:本片文章带大家了解可寻址系统的相关概念,为大家介绍可寻址系统导入方…

Elasticsearch:如何在 Docker 上运行 Elasticsearch 8.x 进行本地开发

对于 Elasticsearch 的新主要版本 (8.x.x),有关于在 Docker 上运行 Elasticsearch 和 Kibana 的重大更新。 过去适用于以前版本的 Docker 和 Docker Compose 的命令和语法需要更新才能适用于最新版本。 在这篇文章中,我们将介绍如何使用 Docker 和 Docke…

Hudi系列5:Hudi与Spark集成

文章目录一. Spark操作Huid概述二. Spark-Shell方式三. pyspark方式四. SparkSQL方式参考:一. Spark操作Huid概述 Hudi各个版本支持Spark版本情况: 将hudi集成spark的jar包,放到spark的jars目录 -- 同步到其它节点 cd /home/hudi-0.12.0/packaging/hudi-spark-b…

【设计模式】UML类图

设计模式学习之旅(一) 查看更多可关注后查看主页设计模式DayToDay专栏 一.UML概述 统一建模语言(Unified Modeling Language,UML),是一种用于软件系统分析和设计的语言工具。特点是简单、统一、图形化、能表达软件设计中的动态与静…

Matlab论文插图绘制模板第72期—金字塔图

前段时间,有朋友觉得一篇文章里的插图看着不错,问Matlab能不能实现: 想了想,Matlab中并没有现成的画图代码。 但本质上,这种图其实就是横向柱状图的变体,而横向柱状图的绘制模板之前有分享过: …

Java多线程:线程的优先级 || 线程的中断 || 线程的分类 || 线程的定时器

Java多线程:线程的优先级 || 线程的中断 || 线程的分类 || 线程的定时器 每博一文案 正如村上春树所说:“当暴风雨过去,你不会记得自己是如何度过的,你甚至不确定,暴风雨是否真正结束了, 但你已不再是当初…

分布式唯一ID的几种生成方案,一次性全掌握!

上一篇文章,我们聊了一下分库分表相关的一些基础知识,具体可以参见:《用真实业务场景告诉你,高并发下如何设计数据库架构?》。 这篇文章,我们就接着分库分表的知识,来具体聊一下全局唯一id如何…

Flutter 基础-上

一、初始化项目 Material Design (Google 推出的前端UI 解决方案) 官网: https://www.material.io/中文网: https://material-io.cn/ Flutter 中一切内容都是组件(Widget) 无状态组件(StatelessWidget)有状态组件(StatefulWidget) 二、app结构 MaterialApp title (任务管理器…

【VScode技巧】:platformio部署ESP32Cam开发板

学习目标: 前几天用Arduino开发了ESP32Cam,实现了人脸识别的功能,今天无聊想了想ESP32Can也可以在VScode的Platformio中使用,于是就试着配置了一下。以下是配置环境的过程,谢谢大家观看。 正所谓工欲善其事&#xff0c…

【零基础】学python数据结构与算法笔记10

文章目录前言57.链表介绍58.链表的创建和遍历59.链表的插入和删除60.双链表61.链表总结62.哈希表62.哈希表实现64.哈希表应用总结前言 学习python数据结构与算法,学习常用的算法, b站学习链接 57.链表介绍 链表是由一系列节点组成的元素集合。每个节点…

React配置文件(五) 配置less

代码如下: module.exports { webpack: override( addLessLoader({ lessOptions: { javascriptEnabled: true, modifyVars: { primary-color: #1DA57A }, }, }), adjustStyleLoaders(({ use: [, , postcss] }) > { const postcssOptions postcss.options postcss.options …

SEO初学者如何快速做好 SEO 优化?seo数据查询

昨天给大家介绍了seo的意义和重要性,今天让我们一起看看10个基本的SEO初学者技巧,如何优化网站以增加流量。 1. 研究关键词并使用尾词 关键词在SEO中起着重要的作用。关键字表明了你文章的主要主题,它使人们有可能在网上搜索感兴趣的主题时找…

RK3588平台开发系列讲解(日志篇)RK3588 syslog的使用

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、查看是否启用syslog.conf二、配置启用syslog.conf1、配置busybox2、添加配置文件3、编译buildroot烧录三、验证1、编写测试代码2、查看日志文件3、运行测试程序沉淀、分享、成长,让自己和他人都能有所收获!😄 …