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. 解决QQ能正常上网但是网页无法打开的办法

    最近网页老师稀里糊涂的打不开,在这里附上参考的行之有效的办法. https://baijiahao.baidu.com/s?id=1645363213803553998&wfr=spider& ...

  2. js--闭包与垃圾回收机制

    前言 闭包和垃圾回收机制常常作为前端学习开发中的难点,也经常在面试中遇到这样的问题,本文记录一下在学习工作中关于这方面的笔记. 正文 1.闭包 闭包(closure)是Javascript语言的一个难 ...

  3. java基础知识 + 常见面试题

    准备校招面试之Java篇 一. Java SE 部分 1.1 Java基础 1. 请你解释Object若不重写hashCode()的话,hashCode()如何计算出来的? Object 的 hash ...

  4. 剑指 Offer 37. 序列化二叉树 + 二叉树的层次遍历

    剑指 Offer 37. 序列化二叉树 Offer_37 题目描述 题目解析 本题主要考察的就是二叉树的层次遍历. 层次遍历时可以根据二叉树的特点将空结点也进栈. 反序列化时同样可以根据层次遍历的思路 ...

  5. [个人总结]利用grad-cam实现人民币分类

    # -*- coding:utf-8 -*- import os import numpy as np import torch import cv2 import torch.nn as nn fr ...

  6. Java I/O流 02

    IO流·字节流 IO流概述及其分类 * A:概念 * IO流用来处理设备之间的数据传输 * Java对数据的操作是通过流操作的 * Java用于操作流的类都在IO包中 * 流按流向分为两种输入流.输出 ...

  7. 为什么要从 Linux 迁移到 BSD3

    BSD 是正常人所在的地方 首先我要说的是,我并不是字面上的意思.我这里说的是从系统管理和编码的角度出发的设计和开发决策. 与 Linux 发行版相反,Berkeley 软件发行版( BSD )并不是 ...

  8. hibernate 的一对多关联关系映射配置

    hibernate 是操作实体类: 表是一对多的关系,当创建这2个实体的时候 在一的一方定义一个多的一方的集合 在多的一方定义一个一的一方的对象 表是多对多的关系,当创建这2个实体的时候 在互相中都有 ...

  9. C语言II博客作业02

    这个作业属于那个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-4 这个作业要求在哪里 https://edu.cnblogs.com/campus/zs ...

  10. 在go中通过cmd调用python命令行参数量级过大问题解决

    问题描述如下: 在go中使用cmd调用python命令行 cmd := exec.Command("python", "dimine/Kriging/matrix.py& ...