http 请求的7 种方法
1.get
2.post
3.put
4.delete
5.head
6.trace
7.opinions
head 请求和 get请求类似,但是服务器只响应首部,不会返回主体部分。
1. 看资源是否存在
2. 看首部,context-length是否被修改了。
- //get请求报文
- GET /test/index.html HTTP/1.1
- Host: www.dudu.com
- Accept:*
- //get 响应报文
- Http/1.2 200 ok
- Content-type:text/html;
- Content-Length:617;
- <html>
- <div>
- // head请求报文
- Head /test/index.html HTTP/1.1
- Host: www.dudu.com
- Accept:*
- //head 响应报文
- Http/1.2 200 ok
- Content-type:text/html;
- Content-Length:617;
put
和get 相反,会向服务器写入文档,服务器用请求主体部分创造一个新的文档,url就是put 请求的url; 如果资源已经存在,则更新资源
- // put 请求报文
- Put /test/put.txt HTTP/1.1
- Host:www.dudu.com
- Content-type: text/plain;
- Content-length: 34
- 'hahah'
- // put响应报文
- Http/1.1 201 created
- location:www.dudu.com/test/put.txt
- Content-type: text/plain;
- Content-length: 34
- www.dudu.com/test/put.txt
post
get / post 有哪些区别?
GET和POST本质上就是TCP链接,本质上都一样。
get | ||
---|---|---|
后退按钮/刷新 | 无害 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 |
书签 | 可收藏为书签 | 不可收藏为书签 |
缓存 | 能被缓存 | 不能缓存 |
编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。 |
历史 | 参数保留在浏览器历史中。 | 参数不会保存在浏览器历史中。 |
对数据长度的限制 | 是的。大概是2kb, 会出现截断的情况 | 无限制。 |
对数据类型的限制 | 只允许 ASCII 字符。 | 没有限制。也允许二进制数据。 |
安全性 |
与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。 在发送密码或其他敏感信息时绝不要使用 GET ! |
POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。 |
可见性 | 数据在 URL 中对所有人都是可见的。 | 数据不会显示在 URL 中。 |
(安全后退书签缓存编码历史两个限制)
GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。如果你用GET服务,在request body偷偷藏了数据,不同服务器的处理方式也是不同的,有些服务器直接忽略
GET和POST还有一个重大区别,简单的说:
GET产生一个TCP数据包;POST产生两个TCP数据包。
长的说:
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
trace
『儿子你都变成啥样了』
客户端发起的请求要经过防火墙,代理等程序,任何一个程序都有可能修改请求。
trace 请求,服务器会把它收到的原始请求报文转发回去;
opinions
『你能干啥』
请求服务器告知其功能,可以问服务器支持哪些方法,可以对某些特定的资源支持哪些方法
delete
请求删除某一资源,不能保证一定会删除
链接地址: http://blog.leanote.com/post/dujuncheng/http-7-%E7%A7%8D%E6%96%B9%E6%B3%95
http 请求的7 种方法相关推荐
- php发送post请求的三种方法
这篇文章主要介绍了php发送post请求的三种方法,分别使用curl.file_get_content.fsocket来实现post提交数据,需要的朋友可以参考下 class Request{ pub ...
- php里面get和post请求,php中GET和POST请求发送几种方法总结
在php中GET和POST请求发送有很多方法,一直都没有仔细的去总结过,今天看到一站长分享的GET和POST请求发送几种方法下面整理一下. 无论是畅言还是多说,我都需要从远程抓取文章的评论数,然后存入 ...
- java发送get请求_java发送http get请求的两种方法(总结)
长话短说,废话不说 一.第一种方式,通过HttpClient方式,代码如下: public static String httpGet(String url, String charset) thro ...
- java get请求 参数_HttpServletRequest获取GET请求参数5种方法
首页 > Java Web > SpringMvc应用 > HttpServletRequest HttpServletRequest获取GET请求参数5种方法 HttpServle ...
- Python接口测试- requests 发送 post 请求的几种方法
目录 前言: 发送 json 格式的数据 前言: 想了解更多相关知识请关注我吧!或者点击这里领取全套[软件测试/自动化测试]海量资料免费领取 POST 请求用于向服务器发送数据.与 get 相比更安 ...
- 解决跨域请求的四种方法
跨域 跨域就是请求的url中的"协议"."域名"."端口号"其中任何一种不一样都是属于跨域.解决跨域的主要的四种方法是jsonp.跨域资源共 ...
- 模拟发起http请求的几种方法
如何使用http协议调用服务器端的服务. 在日常工作中很多时候我们会需要测试自己提供出来的方法, 很多时候一些方法跨平台提供给第三方使用,一般与服务器通信协议都选择http协议, 建议可以去仔细学习一 ...
- Ajax向后端发送PUT请求的两种方法
文章目录 一.将POST请求修改为PUT请求 二.直接发送PUT请求 一.将POST请求修改为PUT请求 通过HiddenHttpMethodFilter过滤器将POST请求修改为PUT请求 需要传入 ...
- 微博社交内容信息爬取(selenium和equests请求接口两种方法)
总体目标:抓取微博内容信息:给一个入口,抓分布抓取关注list,然后给到具体链接去爬取具体个人的微博信息 #我这现在有两种方式,selenium模拟登陆和下拉,二是分析接口获取具体微博信息,这边暂时没 ...
最新文章
- Varnish使用小结
- TCL中Ports/Pins/Nets/Cells/Clocks之间的交互关系?
- 30分钟?不需要,轻松读懂IL
- redis入门(数据类型)
- 桶排序+基数排序+计数排序
- leetcode256. 粉刷房子
- 计算机2013知识,【2013年计算机基础知识习题与答案(三)】- 环球网校
- 二维vector容器读取txt坐标
- Tomcat部分目录作用
- nginx 配置https 负载均衡
- 成人学位英语词汇易混淆的125个词
- 2020ICPC·小米 网络选拔赛第一场(Matrix Subtraction (二维差分))
- Java【案例6-2】 学生管理系统
- 【引用】100句经典刺透人心,伤愈后才能更坚强
- 青龙羊毛——酷狗放羊娃(搬运)
- 月份加日期前面用on还是in_日期、星期、月份、年份等时间前面用什么介词
- smartfusion2芯片的一些特性
- python plt legend并排_matplotlib如何控制legend的位置之二
- Cynthia - Fastjson deserialization vulnerability
- 学习笔记-局域网和城域网(二)