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. list.add(int index, E element)和list.addAll(list1)

    List.add(int index, E element): 在列表的指定位置插入指定元素(可选操作).将当前处于该位置的元素(如果有的话)和所有后续元素向右移动(在其索引中加 1). 参数:ind ...

  2. 死磕Spring之IoC篇 - 解析自定义标签(XML 文件)

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...

  3. spring boot的 yml和properties的对比

    Spring Boot 虽然做了大量的工作来简化配置,但其配置依然是相当的复杂!支持的外部配置方式就有很多种,笔者没有去统计,也许是为了灵活使用吧.   application.yml 和 appli ...

  4. kali 下的邮件发送工具 swaks

    kali 下的邮件发送工具 swaks Swaks 是一个功能强大,灵活,可编写脚本,面向事务的 SMTP 测试工具,目前 Swaks 托管在私有 svn 存储库中. 官方项目 http://jetm ...

  5. 在Arch上使用Fcitx5

    目录 卸载Fcitx4 安装Fcitx5 配置 修改环境变量 系统登陆后默认启动Fcitx5输入法 配置主题 最终使用效果 参考文档 我是一个Arch+KDE的用户,所以下面的方法可能不适合所有的Li ...

  6. 基于OpenSSL的PKI的PKI数字证书系统实现

    本篇主要介绍了基于OpenSSL的PKI的PKI数字证书系统实现,利用OpenSSL建立一个CA中心的详细解决方案和建立的具体步骤. 1.PKI数字证书系统设计 PKI数字证书系统主要包括证书颁发机构 ...

  7. POJ-3436(网络流+最大流+输出路径)

    ACM Computer Factory POJ-3436 题目就是一个工厂n个加工机器,每个机器有一个效率w,q个材料入口,q个材料出口,每个口有三个数表示状态,1表示一定有入/出的材料,0表示没有 ...

  8. 2020年12月-第02阶段-前端基础-CSS Day07

    CSS Day07 CSS高级技巧 理解 能说出元素显示隐藏最常见的写法 能说出精灵图产生的目的 能说出去除图片底侧空白缝隙的方法 应用 能写出最常见的鼠标样式 能使用精灵图技术 能用滑动门做导航栏案 ...

  9. .NET并发编程-反应式编程

    本系列学习在.NET中的并发并行编程模式,实战技巧 本小节开始学习反应式编程.本系列保证最少代码呈现量,虽然talk is cheap, show me the code被奉为圭臬,我的学习习惯是,只 ...

  10. ubantu16与windows下——redis的安装与使用

      (1) 打开ubantu16,使用如下命令下载安装包 wget http://download.redis.io/releases/redis-2.8.3.tar.gz (2)解压缩命令: tar ...