链接:技术文档
状态码 | 描述 |
---|---|
200 | 请求成功 |
201 | 已创建 |
204 | 无内容 |
301 | 永久移动 |
302 | 临时移动 |
304 | 未修改 |
400 | 请求语法错误 |
401 | 需要用户认证 |
403 | 拒绝执行 |
404 | 未找到资源 |
500 | 服务器内部错误 |
502 | 网关错误 |
HTTP状态码有哪些?分别代表什么?
简单版:
100
-continue
:继续,一般在发送post
请求时,已发送http header
之后服务器端将返回此信息表示确认,之后发送具体参数信息。200
-OK
:正常返回信息201
-created
:请求成功并且服务器创建了新的资源202
-Accepted
:服务器已接受请求,但尚未处理301
-Moved Permanently
:请求的网页已经永久移动到新的位置302
-Found
:临时性重定向303
-See Other
:临时性重定向,且总是使用GET
请求新的URI
304
-Not Modified
:自从上次请求后,请求的网页未修改过400
-Bad Request
:服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求401
-Unauthorized
:请求未授权403
-Forbidden
:禁止访问404
-Not Found
:找不到如何与URI
相匹配的资源500
-Internal Server Error
:最常见的服务器端错误503
-Server Unavailable
:服务器端暂时无法处理请求(可能是过载或维护)
完整版:
1**
(信息类):表示接收到请求并且继续处理100
——客户必须继续发出请求101
——客户要求服务器根据请求转换HTML协议版本2**
(响应成功):表示动作被成功接收、理解和接受200
——表明该请求被成功地完成,所请求的资源发送回客户端201
——提示知道新文件的URL
202
——接受和处理、但处理未完成203
——返回信息不确定或不完整204
——请求收到,但返回信息为空205
——服务器完成了请求,用户代理必须复位当前已经浏览过的文件206
——服务器已经完成了部分用户的GET
请求3**
(重定向类):为了完成指定的动作,必须接受进一步处理300
——请求的资源可在多处得到301
——本网页被永久性转移到另一个URL
302
——请求的网页被转移到一个新的地址,但客户访问仍继续通过原始URL
地址,重定向,新的URL
会在response
中的Location
中返回,浏览器将会使用新的URL
发出新的request
。303
——建议客户访问其他URL
或访问方式304
——自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容,代表上次的文档已经被缓存,还可以继续使用。305
——请求的资源必须从服务器指定的地址得到306
——前一版本HTTP中使用的代码,现行版本中不再使用307
——申明请求的资源临时性删除4**
(客户端错误类):请求包含错误语法或不能正确执行400
——客户端请求有语法错误,不能被服务器所理解401
——请求未经授权,这个状态码必须和WWW-Authenticate
报头域一起使用- HTTP
401.1
——未授权:登录失败 - HTTP
401.2
——未授权:服务器配置问题导致登录失败 - HTTP
401.3
——ACL 禁止访问资源 - HTTP
401.4
——未授权:授权被筛选器拒绝 - HTTP
401.5
——未授权:ISAPI或CGI授权失败 402
——保留有效ChargeTo
头响应403
——禁止访问,服务器收到请求,但是拒绝提供服务- HTTP
403.1
——禁止访问:禁止可执行访问 - HTTP
403.2
——禁止访问:禁止读访问 - HTTP
403.3
——禁止访问:禁止写访问 - HTTP
403.4
——禁止访问:要求SSL - HTTP
403.5
——禁止访问:要求SSL128
- HTTP
403.6
——禁止访问:IP地址被拒绝 - HTTP
403.7
——禁止访问:要求客户证书 - HTTP
403.8
——禁止访问:禁止站点访问 - HTTP
403.9
——禁止访问:连接的用户过多 - HTTP
403.10
——禁止访问:配置无效 - HTTP
403.11
——禁止访问:密码更改 - HTTP
403.12
——禁止访问:映射器拒绝访问 - HTTP
403.13
——禁止访问:客户证书已被吊销 - HTTP
403.15
——禁止访问:客户访问许可过多 - HTTP
403.16
——禁止访问:客户证书不可信或者无效 - HTTP
403.17
——禁止访问:客户证书已经到期或者尚未生效 404
——一个404
错误表明可连接服务器,但服务器无法取得所请求的网页,请求资源不存在。405
——用户在Request-Line
字段定义的方法不予许406
——根据用户发送的Accept
头,请求资源不可访问407
——类似401
,用户必须首先在代理服务器上得到授权408
——客户端没有在用户指定的时间内完成请求409
——对当前资源状态,请求不能完成410
——服务器上不再有此资源,且无进一步的参考地址411
——服务器拒绝用户定义的Content-Length
属性请求412
——一个或多个请求头字段在当前请求中错误413
——请求的资源大于服务器允许的大小414
——请求的资源URL长于服务器允许的长度415
——请求的资源不支持请求项目格式416
——请求中包含Range
请求头字段,在当前请求资源范围内没有Range
指示值,请求也不包含If-Rane
请求头字段417
——服务器不满足请求Expect
头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求。5**
(服务端错误类):服务器不能正确执行一个正确的请求- HTTP
500
——服务器遇到错误,无法完成请求 - HTTP
500.100
——内部服务器错误——ASP错误 - HTTP
500.11
——服务器关闭 - HTTP
500.12
——应用程序重新启动 - HTTP
500.13
——服务器太忙 - HTTP
500.14
——应用程序无效 - HTTP
500.15
——不允许请求global.asa
- Error
501
——未实现 - HTTP
502
——网关错误 - HTTP
503
——由于超载或停机维护,服务器目前无法使用,一段时间后可能恢复正常
一个页面从输入URL到页面加载显示完成,这个过程发生了什么?(流程越详细越好)
- 从URL规范、HTTP协议、DNS、CDN、数据库查询到浏览器解析、CSS规则构建、
layout
、paint
、onload/domready
、JS执行、JS API绑定等 - 1、浏览器会开启一个线程来处理这个请求,对URL分析判断如果是HTTP协议就按照Web方式来处理;
- 2、调用浏览器内核中的对应方法,比如
webview
中的loadUrl
方法; - 3、通过DNS解析获取网址的IP地址,设置UA等信息发出第二个GET请求;
- 4、记性HTTP协议会话,客户端发送报头(请求报头);
- 5、进入到web服务器上的Web Server,如Accept、Tomcat、Node.js等服务器;
- 6、进入部署好的后端应用,如PHP、Java、JavaScript、python等,找到对应的请求处理;
- 7、处理结束反馈报头,此处如果浏览器访问过,缓存上有对应资源,会与服务器最后修改时间对比,一致则返回
304
; - 8、浏览器开始下载HTML文档(响应报头,状态码
200
),同时是使用缓存; - 9、文档树建立,根据标记请求所需要指定MIME类型的文件(比如css、js),同时设置了
cookie
; - 10、页面开始渲染DOM,JS根据DOM API操作DOM,执行事件绑定等,页面显示完成。
- 浏览器把请求的URL交给DNS域名解析,找到真实IP,向服务器发起请求;
- 服务器交给后台处理完成后返回数据,浏览器接收文件;
- 浏览器对加载到的资源进行语法解析,建立相应的内部数据结构;
- 载入解析好的资源文件,渲染页面显示内容。
从输入URL(或跳转页面)到获取HTML的详细过程
加载一个资源的过程
- 浏览器根据DNS服务器得到域名的IP地址
- 向这个IP的机器发送HTTP请求
- 服务器收到、处理并返回HTTP请求
- 浏览器得到返回内容
安全性
- XSS跨站请求攻击
- XSRF跨站请求伪造
- 在博客写文章,同时偷偷插入一段
<script-
- 攻击代码中,获取
cookie
,发送到自己的服务器 - 发布博客,有人查看博客
- 会把查看者的
cookie
发送到攻击者的服务器
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。