15.状态码_form提交

客户端发给服务器的HTTP请求,是在协商,告诉服务器我想要什么,我的喜好,每个客户端的喜好都是不一样的,客户端喜欢的,服务器不一定支持,所以要告诉服务器,我到底喜欢多少的是什么,要全部讲出来,让服务器根据情况,进行响应

状态码(Status Code)

◼ 在RFC 2616 10.Status Code Definitions规范中定义

状态码指示HTTP请求是否已成功完成

◼ 状态码可以分为5类

信息响应:100~199

成功响应:200~299

重定向:300~399

客户端错误:400~499

服务器错误 :500~599

有一些数值是一直没有用上的

常见状态码

每一个状态码都会有一个对应的英文描述

状态码,代表的是你这次请求状态如何

客户端拿到这些码后,就能精准的知道自己哪里错了,我为什么错了,然后根据这些错误信息,调整自己的请求

◼ 100 Continue

请求的初始部分已经被服务器收到,并且没有被服务器拒绝。客户端应该继续发送剩余的请求,如果请求已经完成,就忽略这个响应

允许客户端发送带请求体的请求前,判断服务器是否愿意接收请求(服务器通过请求头判断)

在某些情况下,如果服务器在不看请求体就拒绝请求时,客户端就发送请求体是不恰当的或低效的

在这里插入图片描述

这个是比较少见的

◼ 200 OK:请求成功

客户端发送请求过去,服务器返回一个消息,就是一次成功的响应,那怕是登录失败

如果服务器返回的是开发人员设计的状态码400,那就是400,即使它是一次成功的响应

开发人员设不设计,由公司决定

◼ 302 Found:请求的资源被暂时的移动到了由Location头部指定的URL上

在这里插入图片描述

由服务器来决定客户端等一下重定向到什么页面

在这里插入图片描述

客户端在重新发送一个请求,服务器返回给客户端重定向的界面

前后端分离的话,具体跳转是由前端控制的,这个时候是不用重定向的,前端根据后台返回的数据,自己使用路由进行跳转

如果网站没有进行跳转,可能进行的是单页应用

Ctrl+F5:忽略缓存,强制刷新

◼ 304 Not Modified:说明无需再次传输请求的内容,也就是说可以使用缓存的内容

在这里插入图片描述

内容是从缓存里面直接拿的

服务器返回304,客户端缓存却被清了,那就显示不出来页面了,但是跟服务器没有关系,你客户端要清跟我有什么关系,我服务器又没有这么智能

缓存由请求头和响应头里面的多个字段共同决定

◼ 400 Bad Request:由于语法无效,服务器无法理解该请求

在这里插入图片描述

除了HTTP格式以外,还有可能是域名访问的参数不符合服务器端的需求

格式是对的,开发还给你400,说明你的访问参数有问题

状态码是由开发给的,它想给什么就给什么,当然合格的开发是不回去随便给的

在这里插入图片描述

格式不对,服务器就可以检查到,直接给你一个400,根本就不用经手开发人员

◼ 401 Unauthorized:由于缺乏目标资源要求的身份验证凭证

打开网站,直接弹窗,要我们输账号,现在很少见了,都是在登录页面输账号

◼ 403 Forbidden:服务器端有能力处理该请求,但是拒绝授权访问

◼ 404 Not Found:服务器端无法找到所请求的资源

◼ 405 Method Not Allowed:服务器禁止了使用当前HTTP方法的请求

假设,我们在页面添加购物信息,点击添加发送,却是用get请求,这个时候服务器返回405,因为它只支持POST请求添加数据,因为我们使用的方法不对

添加商品,服务器端要求必须要用POST请求方法,不然我就返回405给你

我有能力处理这个方法,但是我不想给你

◼ 406 Not Acceptable:服务器端无法提供与Accept-Charset以及Accept-Language指定的值相匹配的响应

客户端想要的,我给不了,我无能为力

◼ 408 Request Timeout:服务器想要将没有在使用的连接关闭

一些服务器会在空闲连接上发送此信息,即便是在客户端没有发送任何请求的情况下

服务器想要关闭这个连接

从HTTP/1.1开始可以进行长连接,在建立长连接之后,没有收到客户端发送过来的请求,这个时候服务器就可以发送408

◼ 500 Internal Server Error:所请求的服务器遇到意外的情况并阻止其执行请求

服务器崩了,服务器出问题了

说明后台工程师写代码有问题

服务器返回的错误消息,可以由服务器端的开发人员来控制

服务器返回的状态码仅供参考,一般正常的开发返回的状态码是没有问题的,主要是用来给客户端提供参考,方便大家调代码,协作,不能够去乱搞去瞎写

◼ 501 Not Implemented:请求的方法不被服务器支持,因此无法被处理

服务器必须支持的方法(即不会返回这个状态码的方法)只有 GET 和 HEAD,其它方法可以不支持

◼ 502 Bad Gateway:作为网关或代理角色的服务器,从上游服务器(如tomcat)中接收到的响应是无效的

◼ 503 Service Unavailable:服务器尚未处于可以接受请求的状态

通常造成这种情况的原因是由于服务器停机维护或者已超载

服务器忙不过来了,一旦服务器开机,它是能够处理过来的,它是一台正常的服务器

form提交—常用属性

在这里插入图片描述

表单提交:在表单里面填好数据,然后提交到服务器

◼ action:请求的URI

在这里插入图片描述

相对路径也可以,遇到/的时候,会自动的把域名给补齐

在这里插入图片描述

服务器从html的属性当中取出值

◼ method:请求方法(GET、POST)

对于表单来说,只支持这两种,像其它的比如PUT,根本就不支持

由服务器决定,用这两种中的哪一种

在这里插入图片描述

这不是请求体,这是浏览器对URL进行解析,展示出来的

在这里插入图片描述

这才是请求体

◼ enctype:POST请求时,请求体的编码方式

只有在POST请求时才有用,因为GET请求没有请求体

控制你的请求体长什么样子

application/x-www-form-urlencoded(默认值)

请求体的编码方式

✓ 用&分隔参数,用=分隔键和值,字符用URL编码方式进行编码

在这里插入图片描述

编码的方式过于简单,不适合大的数据传输,比如文件传输,传输的时候只能传输文件名

multipart/form-data

在这里插入图片描述

内容类型也跟着变

在这里插入图片描述

请求体变成一段一段的

在这里插入图片描述

这个是分割线

在这里插入图片描述

key和value之间有两个回车换行

✓ 文件上传时必须使用这种编码方式

在这里插入图片描述

getParameter只能解析用&隔开的数据

可以通过第三方库,commons-fileupload来解析multipart/form-data编码的请求体

form提交—multipart/form-data

在这里插入图片描述

在这里插入图片描述

close-delimiter

1*:至少一个

在这里插入图片描述

一个参数

在这里插入图片描述

delimiter

在这里插入图片描述

body-part

必须要严格按照格式来,少一个分号都不行,因为它会切割不准确,到时候肯定解析不出来

猜你喜欢

转载自blog.csdn.net/m0_53008479/article/details/120924455