| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 15.状态码_form提交 -> 正文阅读 |
|
[系统运维]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 必须要严格按照格式来,少一个分号都不行,因为它会切割不准确,到时候肯定解析不出来 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 20:43:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |