Get请求和Post请求

 * Get请求 和 Post请求各方面分析

      - 什么情况下浏览器发送的是Get请求?

          1. 通过浏览器的地址栏输入地址,所访问的URL都是get请求,如果以post定义,那么由于请求与实现的不一致,会返回405错误。

          2. 点击链接

          3. 表单默认的提交方式

      - 什么情况下浏览器发送的是Post请求?

          1.只有将“《form  action=""  method="Post"> </form》”标签的,method属性设置为Post的时候,才是浏览器发送的才是post请求,剩下所有的浏览器请求都是Get请求。

      - 什么时候使用Get请求?

          1. 请求是为了查找资源,HTML表单数据仅用来帮助搜索。

          2. 请求结果无持续性的副作用。

          3. 收集的数据以及HTML表单内的输入字段名称的总长不超过1024个字符。

      - 什么时候使用Post请求?

          1. POST用于创建资源,资源的内容会被编入HTTP请示体的内容中。例如,处理订货表单、在数据库中加入新数据行等。

          2. GET方法可能会产生很长的URL,或许会超过某些浏览器与服务器对URL长度的限制,此时使用Post

          3. 要传送的数据不是采用7位的ASCII编码。

     - Get请求的特点?

          1. 请求参数会添加到请求资源路劲的后面,只能添加少量参数(因为请求行只有一行,大约只能存放2K左右的数据)

          2. 请求参数会显示在浏览器地址栏,路由器会记录请求地址

     - Post请求的特点?

          1. 请求参数添加到请求体内容里面,可以添加大量的参数(也解释了为什么浏览器地址栏不能发送post请求,在地址栏里我们只能填写URL,并不能进入到Http包的实体当中)

          2. 相对安全,但是,post请求也不会对请求参数进行加密处理(可以使用https协议来保证数据安全)

     - Get请求和POST请求的区别?

	   1. get:

		  - get请求在请求行上提交数据. 格式:uri? name=value&name=value

		  - get请求提交方式最终会显示在浏览器地址栏上

		  - get请求在请求行上提交数据,所以提交的数据有长度限制

		  - get请求只能提交字符串类型数据。

		  - get请求的最终结果会被浏览器缓存Cache进行收纳,而post不会

	    2.post:

		  - Post请求在请求体中提交数据,相对安全,格式:name=value&name=value

		  - post请求提交方式最终不会再地址栏中显示

		  - Post请求在请求体中提交数据,所以提交的数据没有长度限制

		  - post请求可以提交各种类型数据,包括 视频, 音乐,图片,所以文件上传必须使用post请求

		  - Post请求不使用缓存机制 no-cache,不会被浏览器缓存收纳。

    -  Get请求和POST请求如何选择使用?

	    - 传送数据内容包括敏感数据,必须使用post

	    - 传送数据格式不是字符串类型数据,必须使用post

	    - 传送数据很多必须使用post

	    - 为了修改服务器端资源的时候使用post

	    - 剩下情况都要使用get。

	    - get请求一般是从服务器端读取资源,读取的这个资源在短时间内是不会发生变化的,所以get请求最终的结果被浏览器缓存起来了。

	    - post请求一般是修改服务器端的资源,而每次修改的结果都是不同的,所以没必要将post缓存。

     -  浏览器缓存

	    1. 浏览器将数据缓存之后,缓存的资源是和某个特定的路径缓存在一起的,只要浏览器再发送相同的请求路径,这是时候回去缓存中获取资源,不再访问服务器,利用这种方式降低服务器的压力,提高用户的体验。

	    2. 但是有时候我们不希望所请求得资源走缓存,希望它走服务器,可以在请求路径后面添加时间戳

		例如: http://localhost:8080/prj-servlet-09/loginServlet?timestamp=123456

     -  需要保证前端请求方式和后台程序处理方式一致

	      1.前端的页面发送的请求方式应该和服务器端需要的请求方式一致。

	      2.服务器端需要get请求,前端就应该发送get请求,服务器端需要post请求,前端就应该发送pst请求。若不一致应该提示错误信息。

JAVAEE_Servlet_11_GetAndPost的更多相关文章

随机推荐

  1. EasyExcel学习

    导入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</a ...

  2. Linux进程管理工具Supervisor的安装配置

    目录 Linux进程管理工具Supervisor的安装配置 简介 安装Python包管理工具 安装Supervisor 配置 配置文件参数说明 配置进程管理 启动supervisor 控制进程 交互终 ...

  3. 不同浏览器CSS样式不兼容问题

    一句话,我想的太复杂了.向朋友请教才了解到,其实只要加个判断即可,首先获取到浏览器的基本信息,像什么版本啊,名称啊.默认语言啊等等,然后根据不同浏览器默认加载不同CSS样式即可,获取浏览器版本的连接如 ...

  4. Win32API使用技巧 -- 置顶应用

    Win32提供了SetForegroundWindow方法可以将应用设置到前台并激活,但是在某些场景下,只调用该接口会返回0,即设置失败.比如如下场景: 当前前台应用为一个全屏的应用,非前台应用的进程 ...

  5. Static Proxy

    0.静态代理 静态代理的实现比较简单,代理类通过实现与目标对象相同的接口,并在类中维护代理对象.通过构造器塞入目标对象,赋值给代理对象,进而执行代理对象实现的接口方法,并实现前拦截,后拦截等所需的业务 ...

  6. JWT原理及常见攻击方式

    JWT的全称是Json Web Token.它遵循JSON格式,将用户信息加密到token里,服务器不保存任何用户信息,只保存密钥信息,通过使用特定加密算法验证token,通过token验证用户身份. ...

  7. 在windows上安装MySQL数据库注意点及Navicat Premium 15的破解

    在windows上安装MySQL数据库  跟随慕课网教程(http://www.imooc.com/wiki/mysqllesson/mysqlwindows.html)下载安装MySQL: 其中注意 ...

  8. 从代理模式 到 SpringAOP

    前言 Spring AOP 就是通过代理模式来实现切面编程的.代理模式用来为其他对象提供一种代理,以控制对这个对象的访问. 代理对象在客户端和目标对象之间起到中介的作用.通过控制对这个对象的访问,可以 ...

  9. 基于es实现一个简单的搜索引擎

    一.什么是es Elasticsearch是一个基于ApacheLucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库.但 ...

  10. 部署Angular应用到Github pages

    https://jeneser.github.io/blog/2017/08/08/angular-deploying-app-github-pages/ Published: August 08, ...