HTTP协议
什么是HTTP协议?
Hyper Text Transfer Protocol即超文本传输协议
-
分布式,合作式,多媒体信息系统服务
-
面向应用层的协议
-
基于传输层的TCP协议进行通信
-
通用的,无状态的协议
什么是协议
使数据在网络通信的双方间到达,网络通信的参与方必须遵循相同的规则,这套规则称为协议,它最终体现为在网络上传输的数据包的格式。
三大特点
-
遵循请求响应模型
客户端向服务器发送请求,而服务器只能被动响应客户端的请求
-
无连接
客户端向服务器发送请求时建立与服务器的连接。一次请求/响应结束后,客户端与服务器自动断开网络连接。
-
无状态
协议对于不同次的请求/响应没有记忆能力。动态Web需要保存不同请求间的状态,但HTTP协议层面不支持状态保存,可用Session会话解决,实现状态管理。
HTTP协议请求
-
请求组成
请求行,请求头,请求正文
-
请求方式
1> 用户在浏览器地址栏中输入 URL 地址并回车向服务器发送请求(GET方式)
2>用户通过网页超链接发送请求(GET方式)
3>用户通过网页超链接发送请求(GET方式)
4>用户在网页上使用 AJAX 技术向服务器发送请求(任意方式)
GET和POST方法的区别
GET方法
用于获取服务器上的某个资源
下列是触发GET方法的请求
-
在浏览器中直接输入 URL 回车或点击浏览器收藏夹中的链接,此时浏览器就会发送出一个 GET 请求。
-
HTML 中的 link、img、script 等标签的属性中放的 URL,浏览器也会构造出 HTTP GET 请求
-
使用 Javascript 重点 ajax,也能构造出 HTTP GET 请求 各种编程语言(只要能够访问网络),就都能够构造出 HTTP GERT请求
特点
-
首行里面的第一个部分就是 GET
-
URL 里面的 query string 可以为空,也可以不为空
-
GET 请求的 header 有若干个键值对结构
-
GET 请求的 body 一般是空的
POST方法
多用于提交用户输入的数据给服务器
多用于提交用户输入的数据给服务器
-
通过 HTML 中的 form 标签可以构造 POST 请求
-
使用 JavaScript 的 ajax 可以构造 POST 请求
特点
首行第一个部分就是 POST URL 里面的 query string 一般是空的 POST 请求的 header 里面有若干个键值对 POST 请求的 body 一般不为空(body 的具体数据格式,由 header 中的 Content-Type 来描述;body 的具体数据长度,由 header 中的 Content-Length 来描述
区别
GET 和 POST 其实没有本质区别,使用 GET 的场景完全可以使用 POST 代替,使用 POST 的场景一样可以使用 GET 代替。但是在具体的使用上,还是存在一些细节的区别。
GET 习惯上会把客户端的数据通过 query string 来传输(body 部分是空的);POST 习惯上会把客户端的数据通过 body 来传输(query string 部分是空的) GET 习惯上用于从服务器获取数据;POST 习惯上是客户端给服务器提交数据 一般情况,程序员会把 GET 请求的处理,实现成“幂等”的;对于 POST 请求的处理,不要求实现成“幂等” GET 请求可以被缓存,可以被浏览器保存到收藏夹中;POST 请求不能被缓存
HTTP协议响应
组成
状态行,响应头,空行,消息体
消息体支持数据类型
-
x-www-form-urlencoded:一种轻型表单,只支持普通文本,优点是占用字节少
-
form-data:全名为 multipart/form-data,会把表单内容分成多个部分,每个部分都支持不同的格式,优点是支持文件上传,缺点是占用字节多
-
raw:使用的是纯字符串的数据上传方式(一般使用JSON格式字符串)
HTTP协议状态码
HTTP 状态码表示服务器端处理客户端的 HTTP 请求返回的处理结果状态信息,可以通过状态码判断客户端 HTTP 请求是否得到服务器正确处理
-
404 表示客户端请求服务器未收到或无法处理
-
__EOF__

本文链接:https://www.cnblogs.com/3-DG/p/17745331.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix