http 请求的7 种方法

1.get

2.post

3.put

4.delete

5.head

6.trace

7.opinions

head 请求和 get请求类似,但是服务器只响应首部,不会返回主体部分。

1. 看资源是否存在

2. 看首部,context-length是否被修改了。

  1. //get请求报文
  2. GET /test/index.html  HTTP/1.1
  3. Host: www.dudu.com
  4. Accept:*
  5. //get 响应报文
  6. Http/1.2 200 ok
  7. Content-type:text/html;
  8. Content-Length:617;
  9. <html>
  10. <div>
  11. // head请求报文
  12. Head /test/index.html  HTTP/1.1
  13. Host: www.dudu.com
  14. Accept:*
  15. //head 响应报文
  16. Http/1.2 200 ok
  17. Content-type:text/html;
  18. Content-Length:617;

put

和get 相反,会向服务器写入文档,服务器用请求主体部分创造一个新的文档,url就是put 请求的url; 如果资源已经存在,则更新资源

  1. // put 请求报文
  2. Put /test/put.txt HTTP/1.1
  3. Host:www.dudu.com
  4. Content-type: text/plain;
  5. Content-length: 34
  6. 'hahah'
  7. // put响应报文
  8. Http/1.1 201 created
  9. location:www.dudu.com/test/put.txt
  10. Content-type: text/plain;
  11. Content-length: 34
  12. 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

请求删除某一资源,不能保证一定会删除


内容更新于: 2018-04-11 12:21:09 
链接地址:  http://blog.leanote.com/post/dujuncheng/http-7-%E7%A7%8D%E6%96%B9%E6%B3%95

http 请求的7 种方法相关推荐

  1. php发送post请求的三种方法

    这篇文章主要介绍了php发送post请求的三种方法,分别使用curl.file_get_content.fsocket来实现post提交数据,需要的朋友可以参考下 class Request{ pub ...

  2. php里面get和post请求,php中GET和POST请求发送几种方法总结

    在php中GET和POST请求发送有很多方法,一直都没有仔细的去总结过,今天看到一站长分享的GET和POST请求发送几种方法下面整理一下. 无论是畅言还是多说,我都需要从远程抓取文章的评论数,然后存入 ...

  3. java发送get请求_java发送http get请求的两种方法(总结)

    长话短说,废话不说 一.第一种方式,通过HttpClient方式,代码如下: public static String httpGet(String url, String charset) thro ...

  4. java get请求 参数_HttpServletRequest获取GET请求参数5种方法

    首页 > Java Web > SpringMvc应用 > HttpServletRequest HttpServletRequest获取GET请求参数5种方法 HttpServle ...

  5. Python接口测试- requests 发送 post 请求的几种方法

    目录 前言: 发送 json 格式的数据 前言:  想了解更多相关知识请关注我吧!或者点击这里领取全套[软件测试/自动化测试]海量资料免费领取 POST 请求用于向服务器发送数据.与 get 相比更安 ...

  6. 解决跨域请求的四种方法

    跨域 跨域就是请求的url中的"协议"."域名"."端口号"其中任何一种不一样都是属于跨域.解决跨域的主要的四种方法是jsonp.跨域资源共 ...

  7. 模拟发起http请求的几种方法

    如何使用http协议调用服务器端的服务. 在日常工作中很多时候我们会需要测试自己提供出来的方法, 很多时候一些方法跨平台提供给第三方使用,一般与服务器通信协议都选择http协议, 建议可以去仔细学习一 ...

  8. Ajax向后端发送PUT请求的两种方法

    文章目录 一.将POST请求修改为PUT请求 二.直接发送PUT请求 一.将POST请求修改为PUT请求 通过HiddenHttpMethodFilter过滤器将POST请求修改为PUT请求 需要传入 ...

  9. 微博社交内容信息爬取(selenium和equests请求接口两种方法)

    总体目标:抓取微博内容信息:给一个入口,抓分布抓取关注list,然后给到具体链接去爬取具体个人的微博信息 #我这现在有两种方式,selenium模拟登陆和下拉,二是分析接口获取具体微博信息,这边暂时没 ...

最新文章

  1. Varnish使用小结
  2. TCL中Ports/Pins/Nets/Cells/Clocks之间的交互关系?
  3. 30分钟?不需要,轻松读懂IL
  4. redis入门(数据类型)
  5. 桶排序+基数排序+计数排序
  6. leetcode256. 粉刷房子
  7. 计算机2013知识,【2013年计算机基础知识习题与答案(三)】- 环球网校
  8. 二维vector容器读取txt坐标
  9. Tomcat部分目录作用
  10. nginx 配置https 负载均衡
  11. 成人学位英语词汇易混淆的125个词
  12. 2020ICPC·小米 网络选拔赛第一场(Matrix Subtraction (二维差分))
  13. Java【案例6-2】 学生管理系统
  14. 【引用】100句经典刺透人心,伤愈后才能更坚强
  15. 青龙羊毛——酷狗放羊娃(搬运)
  16. 月份加日期前面用on还是in_日期、星期、月份、年份等时间前面用什么介词
  17. smartfusion2芯片的一些特性
  18. python plt legend并排_matplotlib如何控制legend的位置之二
  19. Cynthia - Fastjson deserialization vulnerability
  20. 学习笔记-局域网和城域网(二)

热门文章

  1. spring_定时任务时间设置详解
  2. 【MySQL】# mysql计算两个时间的差值
  3. Java 调用 有道翻译API
  4. s4 android4.4.2,三星Galaxy S4(GT-I9500)开始Android 4.4.2升级
  5. 安卓开发app版本更新
  6. 【Unity】创建一个自己的AR安卓程序
  7. android 状态栏(StatusBar)
  8. uva10410(dbl)
  9. sqlserver Sum求和float类型 数据不准问题
  10. atoi()函数用法