| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> HTTP请求方法 -> 正文阅读 |
|
[网络协议]HTTP请求方法 |
1?引言HTTP请求方法,码农们使用起来大概早已游刃有余,但是至于理论原理,代码规范未必全然了熟于胸,即所谓指下生风,胸无点墨。今天咱们就好好说道说道这HTTP请求方法到底都有啥,值得一探究竟。 2?背景知识回顾? ? ??2.1 HTTP请求方法简介HTTP协议,即超文本传输协议,用于实现客户端与服务器端之间的通信。工作方式是请求-应答模式。web浏览器就是常见的客户端,提供应用的服务器作为服务器端。 客户端与服务器端之间的交互逻辑关系如下图所示:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??图1??客户端与服务器端之间的交互逻辑 HTTP请求方法,最常见的GET和POST,当然还有PUT、DELETE、HEADER等。GET和POST有何区别呢,下面我们着重从原理、规范两方面来详解。 ?2.2??HTTP请求方法原理在HTTP是基于TCP/IP协议的关于数据传输的协议,其底层是TCP/IP协议。换言之,GET、POST都是TCP链接,可以说这两种方法可以干同一件事。那区别在哪里呢?且听小编打个比方。在网络世界中,网络信道就好比道路,那么TCP就像满载快递的汽车,面向客户(面向连接),很靠谱,很少出现快递丢失的现象。但是如果道路上跑的都是一模一样的快递汽车,那就会引起混乱,造成交通拥堵。为了避免这种情况,HTTP协议应运而生,它规定了不同服务种类,比如GET、POST等。HTTP规定,如果执行GET请求,那么就好比车牌号为GET(Method方法为GET),数据也要写在车牌号(url例如http://www.xxx.com?input1=xxx1&input2=xxx2)中。如果执行POST请求,那么车牌号写上POST,数据则放在车厢中(requestbody)。 ?有了车牌号,TCP可以识别各种服务类型的汽车,具体到运输方式,GET、POST也各有特点。简单来说,GET请求只产生一个TCP数据包,而POST则产生两个。具体地,对于GET请求,浏览器会先把Http Header和data一起发送,服务器返回响应200表示成功签收。而POST请求则先发送Header确认能否收货,服务器响应100表示可以签收,再发送data上门,服务器返回200表示成功签收。在网络环境好的情况下,这两种方式耗时差别不大,但是如果网络环境比较差,那么POST在保证数据完整性方面呈碾压之势。 ?2.3??HTTP请求方法规范在规范方面,GET和POST也是有区别的。前面提到,GET方法的数据是放在URL中的,而POST则放在request body中,这两点是最重要也是最显著的区别,至于其他差异,如下表所示。
?2.4??HTTP其它请求方法介绍HTTP协议还有其它一些请求方法,具体如下表所示。
3?JavaScript实现POST、GET请求在实现前端页面时经常会使用JavaScript实现POST、GET请求,同时也会使用JQuery动态实现。接下来将介绍两种请求的实现方法。 ?3.1??POST请求在实现POST请求时,均采用JSON格式将参数封装,形式大同小异,具体如下。 ? ? ? 1)方式一
? ? ? 2)方式二
?3.2??GET请求? ? ? 1)方式一
这是JavaScript中最常用的实现页面跳转的方法,其实质是采用GET方式发送请求。 ? ? ? ?2)方式二
这种方式在实际应用中也非常多见。在日常使用浏览器浏览页面时也经常看到这种形式的页面,可以留意下。 4?总结HTTP的请求方法早已驾轻就熟,应对自如,其实无他,惟手熟尔。然则此间别有洞天,确实值得探究一番。经过上文,相信各位应该能从工作原理、方法规范、实现方式等都有了全面清晰的认识。事实证明,理论知识与实践相结合很有必要,真正做到懂原理,会方法,能实践,而非只坐卖油翁、解牛者。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:28:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |