【第二天】计算机网络 HTTP请求报文和响应报文是什么样的 HTTP请求方式有哪些 GET请求和POST请求的区别

HTTP请求报文和响应报文是什么样的?

我去,以前都没怎么研究过这个。
客户端发送一个请求给服务器,服务器根据请求报文中的信息进行处理,并将处理结果放到响应报文中返回给客户端。

URL

HTTP使用URL (Uniform Resource Locator,统一资源定位符)来定位资源,它是URI(统一资源标识符)的子集,URL在URI的基础上增加了定位能力。URI除了包括URL外,还包括URN(统一资源名称),URN只是用来定义一个资源的名称,并不具备定位该资源的能力。

请求报文结构:

第一行包含了请求方法,URL,协议版本
接下来多行都是请求首部Header,每个首部都有一个首部名称,以及对应的值。
接下来用一个空行分隔Header和主体内容Body
最后就是请求的内容主体

GET http://www.example.com/ HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cache-Control: max-age=0
Host: www.example.com
If-Modified-Since: Thu, 17 Oct 2019 07:18:26 GMT
If-None-Match: "3147526947+gzip"
Proxy-Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 xxxparam1=1&param2=2

响应报文结构:

第一行包含了协议版本,状态码以及描述,这里的200 OK表示请求成功了。
接下来多行也是首部内容
还是用空行来分隔首部和主体
最后是响应的内容主体

HTTP/1.1 200 OK
Age: 529651
Cache-Control: max-age=604800
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 648
Content-Type: text/html; charset=UTF-8
Date: Mon, 02 Nov 2020 17:53:39 GMT
Etag: "3147526947+ident+gzip"
Expires: Mon, 09 Nov 2020 17:53:39 GMT
Keep-Alive: timeout=4
Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT
Proxy-Connection: keep-alive
Server: ECS (sjc/16DF)
Vary: Accept-Encoding
X-Cache: HIT<!doctype html>
<html>
<head><title>Example Domain</title>// 省略... 
</body>
</html>

HTTP请求的方式有哪些

我去,居然有9中方法。
GET方法:获取资源。当前网络请求中,绝大部分使用GET方法。
HEAD方法:获取响应报文的header(首部)。和GET方法类似,但是不返回报文实体主体部分。主要用于确认URL的有效性以及资源更新的日期时间。
POST方法:传输实体主体。POST方法主要用来传数据,而GET方法主要用来获取资源。
PUT方法:上传文件。由于自身不带验证机制,任何人都可以上传文件,因此存在安全性问题,一般不使用该方法。
PATCH方法:对资源部分进行部分修改。PUT也可以用于修改资源,但是只能完全替代原始资源,PATCH允许部分修改。
DELETE方法:与PUT功能相反,并且同样不带验证机制。
OPTIONS方法:查询支持的方法。查询指定的URL能够支持的方法,会返回
Allow: GET,POST,HEAD,OPTIONS这样的内容。
CONNECT方法:在与代理服务通信时建立隧道。使用SSL(安全套接层)和TLS(传输层安全)协议把通信内容加密后经网络隧道传输。
TRACE方法:追踪路径。服务器会将通信路径返回给客户端。发送请求时,在Max-Forwards首部字段中填入数值,每经过一个服务器就会减1,当数值为0时就会停止传输。但通常不会使用TRACE,英文它容易收到XST攻击(跨站追踪)

GET请求和POST请求的区别

作用:

GET用于请求资源,POST用于传输实体主体。

参数:

GET和POST的请求都可以使用额外的参数。但是GET的参数是以查询字符串的方式出现在URL中,而POST的参数存储在实体主体中。不能因为POST参数存储在实体主体中就认为它的安全性更高,因为照样可以通过一些抓包工具(例如Fiddler)查看。
因为URL只支持ASCII码,因此GET的参数中如果存在中文等字符就需要先进性编码。例如 中文 会转换为 %E4%B8%AD%E6%96%87,而空格会转换为 %20。POST 参数支持标准字符集。

安全:

安全的HTTP方法不会改变服务器状态,也就是说它是可读的。
GET方法是安全的,而POST却不是,因为POST方法的目的是传送实体主体内容,这个内容可能是用户上传的表单数据,上传成功后,服务器可能把这个数据存储到数据库中,因此状态也就发生了改变。
安全的方法有:GET,HEAD,OPTIONS
不安全的方法有:POST,PUT,DELETE,PATCH,TRACE。

幂等性:

幂等的HTTP方法:即同样的请求被执行一次或多次的效果是一样的,服务器的状态也是一样的。也就是说幂等方法不具有副作用。
所以所有的安全方法都是幂等的。
在正确实现的条件下,GET,HEAD,PUT,DELETE等方法都是幂等的,但POST不是。
在这里插入图片描述

可缓存:

如果要对响应进行缓存,需要满足以下条件:

  1. 请求报文的HTTP方法本身是可以缓存的,包括GET和HEAD,但是PUT和DELETE不可缓存,POST在多数条件下不可缓存。
  2. 响应报文的状态码是可以缓存的,包括:200,203,204,206,300,301,404,405,410,414,501
  3. 响应报文的Cache-Control首部字段没有指定不进行缓存。

XMLHttpRequest

XMLHttpRequest:

XMLHttpRequest 是一个 API,它为客户端提供了在客户端和服务器之间传输数据的功能。它提供了一个通过URL来获取数据的方式,并且不会使整个页面刷新。这使得网页只更新一部分页面而不会打扰到用户。XMLHttpRequest在AJAX中被大量使用。

在使用XMLHttpRequest的POST方法时,浏览器会先发送Header再发送Data。但不是所有的浏览器都会这么做。例如火狐就不会。
而GET方法Header和Data会一起发送。

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

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

相关文章

vscode 连接WSL子系统方法

1、在应用商店中安装wsl子系统&#xff1a;Ubuntu22.04 2、安装WSL扩展 3、打开vscode命令面板(左下角设置中)&#xff1b;输入wsl&#xff0c; 选择&#xff1a;Remote Explorer: Focus on WSL目标 view 这样就连接上了。。。。。 有时这个会没有这个链接箭头&#xff0c;可…

SSIS_SQLITE

1.安装 SQLite ODBC 驱动程序 2.添加SQLite数据源 在“用户DSN”或“系统DSN”选项卡中&#xff0c;点击“添加”。选择“SQLite3 ODBC Driver”&#xff0c;然后点击“完成”。在弹出的配置窗口中&#xff0c;设置数据源名称&#xff08;DSN&#xff09;&#xff0c;并指定S…

React Native在移动端落地实践

在移动互联网产品迅猛发展的今天&#xff0c;技术的不断创新使得企业越来越注重降低成本、提升效率。为了在有限的开发资源下迅速推出高质量、用户体验好的产品&#xff0c;以实现公司发展&#xff0c;业界催生了许多移动端跨平台解决方案。这些方案不仅简化了开发流程&#xf…

使用AI大模型统计英语四六级试题高频词汇

引子 前些年我做过商品搜索&#xff0c;当时为了优化一些搜索词和搜索关联提示&#xff0c;接触到一点NLP的知识。所以后来有一场非全日制的研究生考试&#xff0c;为了高效的复习英语单词&#xff0c;我爬取了往年的历史真题数据&#xff0c;以及其他模拟等各种试题的数据。然…

【零基础必看的前端教程】——JavaScript(八)函数

欢迎大家打开前端的新篇章——JavaScript&#xff0c;JavaScript与HTML、CSS合称为前端三大件&#xff0c;JavaScript是前端的重中之重&#xff0c;小洪将继续以零基础视角&#xff0c;带你循序渐进学习前端知识&#xff0c;一看就懂&#xff0c;小白也能转行做前端&#xff01…

【PyTorch】基于YOLO的多目标检测项目(二)

【PyTorch】基于YOLO的多目标检测项目&#xff08;一&#xff09; 【PyTorch】基于YOLO的多目标检测项目&#xff08;二&#xff09; YOLO-v3网络由跨距为2的卷积层、跳跃连接层和上采样层组成&#xff0c;没有池化层。网络接收一幅416 * 416的图像作为输入&#xff0c;并提供三…

nacos2.x作为配置中心和服务注册和发现以及springcloud使用

目录 一、nacos是什么 二、windows下安装配置nacos 1、准备 2、安装nacos 3、配置nacos 4、启动并且访问nacos 三、springcloud使用nacos作为配置中心 四、springcloud使用nacos进行服务注册与发现 五、springcloud使用nacos进行服务消费 六、nacos的一些高级配置 1…

pytorch-梯度下降

梯度下降 y x 2 ∗ s i n ( x ) y ′ 2 x s i n x x 2 c o s x x 1 x − Δ y ′ ( x ) 其中 Δ 表示学习率&#xff0c; y ′ ( x ) 代表 y 在 x 点处关于 x 的梯度。 y x^2 * sin(x) \\ y 2xsinxx^2cosx \\ x_1 x - \Delta y(x) \\ 其中 \Delta 表示学习率&#xff0c…

nginx 启动 ssl 模块

文章目录 前言nginx 启动 ssl 模块1. 下载2. 启动 ssl 模块 步骤3. 验证前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!! nginx 启动 ssl 模块 1. 下载 下载…

土耳其云手机提升TikTok电商效率

在数字化飞速发展的今天&#xff0c;TikTok不仅是一个社交平台&#xff0c;更是一个巨大的电商市场。随着TikTok电商功能在全球范围内的扩展&#xff0c;土耳其的商家和内容创作者正面临着前所未有的机遇。本文将详细介绍土耳其云手机怎样帮助商家抓住机遇&#xff0c;实现业务…

vscode回退不显示了,不方便操作

一、后退前进按钮 顶部显示&#xff0c;方便调试 <—— ——> 文件-> 首选项 -> 设置->commandcenter->勾选 Window: Title Bar Style->custom 将native —>custom

Pytorch使用教学4-张量的索引

1 张量的符号索引 张量也是有序序列&#xff0c;我们可以根据每个元素在系统内的顺序位置&#xff0c;来找出特定的元素&#xff0c;也就是索引。 1.1 一维张量的索引 一维张量由零维张量构成 一维张量索引与Python中的索引一样是是从左到右&#xff0c;从0开始的&#xff…

MSP430M03507最小系统板的keil环境搭配,用keil编辑ti单片机

转载自嘉立创MSP430M03507开发手册 这篇文章只是因为我的keil版本与嘉立创的不一样&#xff0c;所以添加了我自己遇到的问题解析 先说说为什么要用keil编辑&#xff0c;因为ti单片机自己的ccs编译环境需要对应仿真器&#xff0c;那个加芯片都240了&#xff0c;哪有那么多钱买…

谷粒商城实战笔记-踩坑-跨域问题

一&#xff0c;When allowCredentials is true, allowedOrigins cannot contain the special value “*” since that cannot be set on the “Access-Control-Allow-Origin” response header. To allow credentials to a set of origins, list them explicitly or consider u…

华东科技杂志华东科技杂志社华东科技编辑部2024年第12期目录

主编的话 造梦国际创新科技之“港” 李岩; 5 焦点 华东视界 6-7 焦点_产业风暴 新材料 8 前沿产品 8 人工智能 9 电子信息 9 生物医药 9 焦点_科技人物 Demis Hassabis&#xff1a;界定AI角色 李冲; 10-15 观点_专题策划 沪港科创“乘数效…

uniapp开发精选短视频视频小程序实战笔记20240725,实现顶部轮播图和热门短剧

创建项目 创建项目,叫video_app。 在pages.json里面修改一下标题: 新建search搜索页面和me我的页面。 此时界面预览效果如下: 引入静态资源 主要是static里面的内容,全部复制过来。 配置底部导航栏 pages.json,放到顶层,和全部样式同级: "tabBar&quo…

基于OSS前端直传的分片上传以及断点续传

一、大文件分片上传 原型 大文件如果直接上传的话由于nginx的限制会导致响应500报错&#xff0c;或者响应时间过长导致响应超时 并且大文件上传有如下缺点 上传时间长: 对于大文件&#xff0c;直接上传可能需要较长时间&#xff0c;特别是在网络速度较慢或不稳定的情况下。这…

演出票务代理需要办理哪些资质?

疫情开放之后&#xff0c;演出行业应该当属今年最火的行业了&#xff0c;你看看今年各地举办的演唱会&#xff0c;光上海今年要举办177场、北京106场、广州94场等&#xff0c;经统计&#xff0c;全国上半年演唱会场次总和为500多场&#xff0c;而下半年已开、待开的演唱会竟达1…

手机怎么设置不同的ip地址

在数字化日益深入的今天&#xff0c;智能手机已成为我们生活、工作和学习中不可或缺的设备。然而&#xff0c;随着网络应用的广泛和深入&#xff0c;我们有时需要为手机设置不同的IP地址来满足特定需求。比如&#xff0c;避免网络限制、提高网络安全、或者进行网络测试等。本文…

ROM修改进阶教程------修改rom 开机自动安装指定apk 自启脚本完整步骤解析

rom修改的初期认识 在解包修改系统分区过程中。很多客户需求刷完rom后自动安装指定apk。这种与内置apk有区别。而且一些极个别apk无法内置。今天对这种修改rom刷入机型后第一次启动后自动安装指定apk的需求做个步骤解析。 在前期博文中我有做过说明。官方系统固件解…