网站首页 > 资源文章 正文
HTTP(超文本传输协议)是一种用于传输超媒体文档(如Web页面)的应用层协议。HTTP定义了客户端(通常是浏览器)与服务器之间进行通信的方式。下面是HTTP协议的主要组成部分:
一、HTTP请求的基本结构
http请求由四部分组成:请求行、请求头、空一行、请求体
1、 请求行
?方法(Method):指定请求类型,如GET、POST、PUT、DELETE等。
?请求URI(Request-URI):标识请求的资源位置,可以是绝对路径或相对路径。
?HTTP版本(HTTP Version):指定使用的HTTP协议版本,如HTTP/1.1或HTTP/2。
举例,POST /api/1745339227916349440_list_1704956921063 HTTP/1.1,POST是请求方法,api/1745339227916349440_list_1704956921063 是URL,HTTP/1.1表示使用的HTTP版本为1.1。
1.1. 请求方法分类
GET:请求指定的资源。
POST:向指定的资源提交数据进行处理请求(例如提交表单或上传文件)。
PUT:替换指定资源的内容。
DELETE:删除指定的资源。
OPTIONS:请求服务器支持的通信选项。
HEAD:请求指定资源的头部信息。
PATCH:对资源的部分更新。
CONNECT:用于建立代理服务器到另一台服务器的隧道连接。
1.1.1 get和post请求方法区别
get:
请求参数位置不同:传输数据暴露在url,使用GET方法请求时,请求参数和对应的值是跟在URL后面,通过问号(“?”)和and连接符(“&”)以及“=”号连接。
参数大小限制:传输数据量小,一般不超过2048个字符
安全性:GET 请求通常被认为是安全级别的较低,因为请求参数直接暴露在URL中。?适用性:适合用于获取数据,而不适合用于修改数据
缓存机制:GET 请求可以被浏览器缓存,以减少重复请求。示例:静态资源(如图片、CSS、JavaScript文件)通常使用 GET 请求。
post:
请求参数位置不同:参数携带在请求体中,所以需要在代码中对参数进行封装,封装完毕传入接口
参数大小限制:传输数据量大,理论上没有限制
安全性:POST 请求通常被认为是安全级别的较高,因为请求参数不暴露在URL中。?适用性:适合用于修改数据,如创建、更新或删除资源。
缓存机制:POST 请求通常不被缓存,因为每次请求可能会产生不同的结果。?示例:动态内容生成,如用户提交的数据。
1.1.2 OPTIONS请求方法
OPTIONS 请求主要用于获取目标资源支持的HTTP方法及其他相关信息,特别是在跨域请求中用于预检。通过发送 OPTIONS 请求,客户端可以了解服务器端的支持情况,从而正确配置请求。这对于开发和调试Web应用或API非常有用
以下是跨域请求预检示例:
2 、请求头
请求头部由键/值对组成,每行一对,键和值用冒号“:”(英文)分隔。
?通用头字段(General Header Fields):如Date、Cache-Control等。
?请求头字段(Request Header Fields):如Accept、Content-Type等。
?实体头字段(Entity Header Fields):如Content-Length、Content-Type等。
2.1 常用Content-Type分类、作用
Content-Type 是一个重要的HTTP头字段,用于指示请求或响应的消息主体(body)的内容类型。它告诉接收方消息主体的数据格式是什么样的,以便接收方能够正确解析和处理这些数据。常见的 Content-Type 包括 text/plain、application/json、application/xml、application/x-www-form-urlencoded、multipart/form-data、text/html、image/jpeg、image/png、application/octet-stream 和 application/pdf。正确设置 Content-Type 可以确保数据被正确解析和处理。
注意:选择正确的 Content-Type在实际应用中,选择正确的 Content-Type 非常重要,因为这直接影响到数据的解析和处理。例如,如果发送JSON数据,但 Content-Type 设置为 text/plain,那么接收方可能会尝试将其作为纯文本处理,而不是作为JSON数据进行解析,从而导致错误。
2.1.1. text/plain
?用途:纯文本数据。
?示例:用于传输简单的文本信息,如纯文本文件。
?格式:纯文本格式,不包含任何HTML标记。
2.1.2. application/json
?用途:JSON(JavaScript Object Notation)格式的数据。
?示例:用于传输JSON格式的数据,常用于Web API。
?格式:JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。
2.1.3. application/xml
?用途:XML(eXtensible Markup Language)格式的数据。
?示例:用于传输XML格式的数据,常用于Web服务。
?格式:XML是一种标记语言,用于存储和传输数据。
2.1.4. application/x-www-form-urlencoded
?用途:编码后的表单数据。
?示例:用于传输通过HTML
元素提交的数据。
?格式:键值对的形式,如 key1=value1&key2=value2。
2.1.5. multipart/form-data
?用途:用于传输包含文件上传的表单数据。
?示例:用于传输通过HTML 元素提交的文件和其他表单数据。
?格式:数据以多个部分(part)的形式发送,每个部分可以包含文件数据或其他表单数据。
2.1.6. text/html
?用途:HTML(HyperText Markup Language)格式的数据。
?示例:用于传输HTML页面。
?格式:HTML是一种标记语言,用于创建网页。
2.1.7. image/jpeg
?用途:JPEG图像格式的数据。
?示例:用于传输JPEG格式的图像文件。
?格式:JPEG是一种常用的图像文件格式,支持有损压缩。
2.1.8. image/png
?用途:PNG图像格式的数据。
?示例:用于传输PNG格式的图像文件。
?格式:PNG是一种无损压缩的图像文件格式,支持透明度。
2.1.9. application/octet-stream
?用途:二进制数据,通常用于传输未知类型的文件。
?示例:用于传输二进制文件,如下载文件。
?格式:字节流形式的数据。
2.1.10. application/pdf
?用途:PDF(Portable Document Format)格式的数据。
?示例:用于传输PDF格式的文件。
?格式:PDF是一种文件格式,用于呈现和交换文档。
3 、空行
用户进行内容分割,表示请求头到此为止,下一行的内容不再是请求头。
4、 请求体
如果请求方法允许(如POST、PUT),则可以包含请求正文。请求正文通常包含发送给服务器的数据
二、HTTP响应的基本结构
http响应由四部分组成:状态行、响应头、空一行、响应体
1、 状态行
?HTTP版本(HTTP Version):指定使用的HTTP协议版本,如HTTP/1.1或HTTP/2。
?状态码(Status Code):表示请求结果的状态码,如200(成功)、404(未找到)等。
?状态消息(Reason Phrase):描述状态码的简短消息。
举例: HTTP/1.1 200 OK
1.1 状态码分类
1xx:信息响应类,指示请求已接收,继续处理。
2xx:成功响应类,表示请求已成功被服务器接收、理解,并接受。
3xx:重定向响应类,表示需要客户端采取进一步的操作才能完成请求。
4xx:客户端错误类,表示请求中有语法错误或请求无法实现。
5xx:服务器错误类,表示服务器在处理请求的过程中发生了错误。
2、 响应头
和请求报文的请求头类似,响应头也由键值对组成,每行一对,键和值用英文冒号 : 分隔。
3、 空行
作为内容分割,表示以下不再是响应头的内容。
4、 响应体
如果响应包含实体内容,则可以包含响应正文。响应正文通常包含返回给客户端的数据。
- 上一篇: 如果被问到 HTTP 协议,你真的能讲清楚吗?
- 下一篇: HTTP协议规范(http协议请求方式)
猜你喜欢
- 2024-10-07 细说HTTP协议及其工作流程(mqtt协议和http协议区别)
- 2024-10-07 计算机网络|HTTP协议(计算机网络|http协议有哪些)
- 2024-10-07 关于 HTTP 协议,你了解多少(http协议网址含义)
- 2024-10-07 还不懂 HTTP 协议的吗?一篇文章讲透
- 2024-10-07 HTTP协议和HTTPS协议的区别详解(http协议和https协议的区别详解过程)
- 2024-10-07 蓝易云 - 网络通信协议-HTTP协议详解!
- 2024-10-07 HTTP协议入门的核心知识点总结,全在这里了,图文并茂拿走不谢
- 2024-10-07 介绍一下 HTTP 协议(http协议系列介绍)
- 2024-10-07 浅谈HTTP协议(http协议是目前在www中应用最广的协议)
- 2024-10-07 详解:什么是HTTP/3 和 QUIC 协议(modbus通讯协议功能码详解)
你 发表评论:
欢迎- 最近发表
-
- UG10.0UG12.0教程,共63章节,送给那些正在自学UG编程的朋友
- UG产品图档下载,连筋薄板,外形铣、孔铣都要用
- 天正建筑 T30V1.0 下载安装教程(支持CAD2025)
- 教你如何开启UG NX12.0设置保护加密(文件密码)
- UG NX 8.5 安装教程,安装过程就是这么简单
- ug安装教程详细步骤ug怎么免费安装教程ug软件怎样安装步骤
- UG/NX安装失败,如何才能彻底删除(卸载)UG/NX?6步就能解决
- UG8.5 正式版安装方法(ug8.8安装)
- ug12.0版安装教程与安装包免费下载 #ug安装
- China-EU 50 years: Advancing stability and prosperity through partnership
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)