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. ATP - UI 自动化测试用例管理平台搭建

    用到的工具:python3 + django2 + mysql + RabbitMQ + celery + selenium python3和selenium这个网上很多教程,我不在这一一说明:   ...

  2. vscode好用插件总结

    做个记录:https://blog.csdn.net/xishining/article/details/90819481 1.Auto Rename Tag --自动重命名成对的HTML标记.假如你 ...

  3. Python爬虫系统化学习(2)

    Python爬虫系统学习(2) 动态网页爬取 当网页使用Javascript时候,很多内容不会出现在HTML源代码中,所以爬取静态页面的技术可能无法使用.因此我们需要用动态网页抓取的两种技术:通过浏览 ...

  4. lambda表达式在python和c++中的异同

    Lambda表达式是干么的?.lambda表达式首先是一个表达式,是一个函数对象一个匿名函数,但不是函数.现在流行语言例如:JS.PHP都支持一种和面向过程.面向对象并列的函数式编程,lambda就是 ...

  5. CentOS rpm常用功能记录

    CentOS7主要有rpm和yum这两种包软件的管理.两者有功能上的区别,其中主要区别是:yum使用简单但需要联网,yum会去网上包源去获取所需要的软件包.而rpm的需要做的事情就更细一些,比如我们需 ...

  6. mysql从一个表提取数据更新另外一个表(修复表数据的不一致)

    目前碰到一个数据不一致的情况,有两张表,一张项目表,一张项目成员表,项目表有个字段是项目工作时间,是项目成员的工作时间汇总.是由于该了逻辑,所以要把数据改成一致. 项目表的大致结构如下. 表名:pro ...

  7. django Form 效验

    Django 登入效验 .py from django import forms from student import models from django.core.exceptions impo ...

  8. 用实战玩转pandas数据分析(一)——用户消费行为分析(python)

      CD商品订单数据的分析总结.根据订单数据(用户的消费记录),从时间维度和用户维度,分析该网站用户的消费行为.通过此案例,总结订单数据的一些共性,能通过用户的消费记录挖掘出对业务有用的信息.对其他产 ...

  9. 关于HDFS存储元数据的NameNode持久化存储

    NameNode持久化场景引入: 问题:NameNode宕机,导致内存中的文件元数据丢失怎么办?我们知道元数据是存储来内存中的,所以一旦宕机,内存数据是会丢失的,因此为了避免数据丢失,HDFS中出现了 ...

  10. unittest系列(三)unittest用例如何执行

    在前面的分享中,我们分别讲了unittest的相关流程以及相关断言,那么很多人,都会问了unittest的用例,应该如何执行呢,这次,我们就来看看,unittest用例如何执行.首先,我们可以使用py ...