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. clipse中mybatis的xml配置文件代码提示

    编写mybatis的xml文件时,没有代码提示会很麻烦,是有解决办法的: 按下图打开 点击右上角的Add按钮,添加配置,配置如下,添加后点击OK: Location:http://mybatis.or ...

  2. EFCodeFirst 数据库连接

    EFCodeFirst 数据库连接 EFCodeFirst 数据库连接 1.NuGet安装实体命令 PM> Install-Package EntityFramework  2.数据库连接字符串 ...

  3. STM32学习笔记——序言

    写AVR已经两年了.如果初中时候玩Arduino也算的话,就是6年. 两年以来,我用AVR单片机完成了两个大项目: AVR单片机教程,一时兴起写的,效果不好: MEDS,参赛用的课题,半完成,比赛都结 ...

  4. 《C++ Primer》笔记 第2章 变量和基本类型

    如果你的数值超过了int表示范围,选用long long 如果你需要使用一个不大的整数,那么明确指定它的类型是signed char或者unsigned char 执行浮点数运算选用double 当一 ...

  5. Hi3559AV100板载开发系列-pthread_create()下V4L2接口MJPEG像素格式的VIDIOC_DQBUF error问题解决-采用阻塞方式下select监听

     最近一直加班加点进行基于Hi3559AV100平台的BOXER-8410AI板载开发,在开发的过程中,遇到了相当多的问题,其一是板载的开发资料没有且功能不完整,厂家不提供太多售后技术支持,厂家对部分 ...

  6. 剑指 Offer 30. 包含min函数的栈 + 双栈实现求解栈中的最小值

    剑指 Offer 30. 包含min函数的栈 Offer_30 题目描述: 题解分析: 题目其实考察的是栈的知识,本题的目的是使用两个栈来求解最小值. 第二个栈主要用来维护第一个栈中的最小值,所以它里 ...

  7. 简单的webRTC连接测试

    webRTC WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-P ...

  8. Office2013安装教程(附安装包+激活工具)

    office2013中文版是微软推出的新一代office办公软件,重点加强了云服务项目,Office2013[☜借你手指用下]采用了全新的Merto界面,使用户更加专注于内容,配合Windows 8的 ...

  9. net5 webapi中 SwaggerUI如何进行版本控制

    创建项目 net5就自带上了swaggerUI,见红色 // This method gets called by the runtime. Use this method to add servic ...

  10. strick-footer 粘边布局

    当网页缩小, 缩放到一定高度时(这个高度就是页面内容高度)footer的页尾自动消失,这个就叫做粘边布局 strick-footer 粘边布局基本思路: 主体{ height:100%; } 内容体{ ...