HTTP协议的8种请求方式及常用请求方式的解析
什么是协议?
协议,是指通信的双方,在通信流程或内容格式上,共同遵守的标准。
一、什么是HTTP?
HTTP,即超文本传输协议,是一种实现客户端和服务器之间通信的响应协议,它是用作客户端和服务器之间的请求。
客户端(浏览器)会向服务器提交HTTP请求;然后服务器向客户端返回响应;其中响应包含有关请求的状态信息,还可能包含请求的内容。
二、http协议的特点
①通信流程:断开式(无状态)
断开式:http协议每次响应完成后,会断开与客户端的连接
无状态:由于服务器断开了之前的连接,就无法知晓连接间的关系
②内容格式:消息头和消息体
HTTP请求的方法:
HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式
1、OPTIONS
返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性
2、HEAD
向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。
3、GET
向特定的资源发出请求。它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。
4、POST
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form
5、PUT
向指定资源位置上传其最新内容
6、DELETE
请求服务器删除Request-URL所标识的资源
7、TRACE
回显服务器收到的请求,主要用于测试或诊断
8、CONNECT
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
注意:
1)方法名称是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Mothod Not Allowed);当服务器不认识或者不支持对应的请求方法时,应返回状态码501(Not Implemented)。
2)HTTP服务器至少应该实现GET和HEAD/POST方法,其他方法都是可选的,此外除上述方法,特定的HTTP服务器支持扩展自定义的方法。
三、HTTP的8种请求方式
HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式
其中:
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法
最常用的四种请求方法:GET, POST, PUT, DELETE
1、get请求
get:可以理解 为 取 的意思,对应select操作
用来获取数据的,只是用来查询数据,不对服务器的数据做任何的修改,新增,删除等操作。
说明:
get请求会把请求的参数附加在URL后面,这样是不安全的,在处理敏感数据时不用,或者参数做加密处理。
get请求其实本身HTTP协议并没有限制它的URL大小,但是不同的浏览器对其有不同的大小长度限制
举例:
https://www.jb51.net/company/my_take_part_in_projects_list?project_id=20085821&t=1655176334048&from=left_tree
2、post请求
post 可以理解 为 贴 的意思
数据发送到服务器以创建或更新资源,侧重于更新数据,对应update操作
说明:
post请求的请求参数都是请求body中
举例:
https://www.jb51.net/20085821/bugtrace/buglists/query/1/created/desc?query_token=%……&&**
3、put请求
put:可以理解为 放 的意思
数据发送到服务器以创建或更新资源,侧重于创建数据,对应insert操作
4、delete请求
delete:字面意思删除,即删除数据,对应delete操作
用来删除指定的资源,它会删除URI给出的目标资源的所有当前内容
5、options请求
用来描述了目标资源的通信选项,返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性![
举例:https://imgservice.csdn.net/direct/v1.0/image/upload?type=blog&rtype=markdown&x-image-template=standard&x-image-app=direct_blog&x-image-dir=direct&x-image-suffix=png
6、head请求
HEAD方法与GET方法相同,但没有响应体,仅传输状态行和标题部分。这对于恢复相应头部编写的元数据非常有用,而无需传输整个内容。
7、connect请求
CONNECT方法用来建立到给定URI标识的服务器的隧道;它通过简单的TCP / IP隧道更改请求连接,通常实使用解码的HTTP代理来进行SSL编码的通信(HTTPS)。
8、trace请求
TRACE方法用于沿着目标资源的路径执行消息环回测试;它回应收到的请求,以便客户可以看到中间服务器进行了哪些(假设任何)进度或增量。
综上,大家记得以下总结,即达到本贴目的
1、get 取,是查询数据,对应select操作
2、post 贴,常用于修改数据,对应update操作
3、put 放,常用于新增数据,对应insert操作
4、delete 删,是删除数据,对应delete操作
get 和 post区别
区别:
get请求无消息体,只能携带少量数据
post请求有消息体,可以携带大量数据
携带数据的方式:
get请求将数据放在url地址中
post请求将数据放在消息体中
GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;
GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
其它文档
网络协议汇总:https://www.jb51.net/network/851215.html
tcp三次握手、四次挥手:https://www.jb51.net/network/388684.html
一次完整的http请求过程:https://www.jb51.net/network/851216.html
常见HTTP状态码汇总:https://www.jb51.net/article/104295.htm
相关文章
- HTTP全部标准响应状态码整理
- 使用Tomcat无法访问http:localhost:8080的解决方法
- 实现在Windows下安装Lighttpd的方法
- Apache服务器主配置文件httpd.conf详解
- Tomcat启动成功但无法访问http://localhost:8080/的解决方法
- 451错误是什么意思?HTTP网页错误代码403和451有什么区别?
- Socks2HTTP(代理服务器协议转换助手) V0.93 免费汉化安装版
- 浏览器打开淘宝网页弹出安全的https警告怎么办?
- 浏览器查看网页提示危险内容不使用安全HTTPS连接传送该怎办?
- Tomcat部署web项目出现http状态404未找到的详细解决方案