简单版:
100-continue:继续,一般在发送post请求时,已发送http header之后服务器端将返回此信息表示确认,之后发送具体参数信息。200-OK:正常返回信息201-created:请求成功并且服务器创建了新的资源202-Accepted:服务器已接受请求,但尚未处理
301-Moved Permanently:请求的网页已经永久移动到新的位置302-Found:临时性重定向303-See Other:临时性重定向,且总是使用GET请求新的URI304-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——提示知道新文件的URL202——接受和处理、但处理未完成203——返回信息不确定或不完整204——请求收到,但返回信息为空205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件206——服务器已经完成了部分用户的GET请求
3**(重定向类):为了完成指定的动作,必须接受进一步处理300——请求的资源可在多处得到301——本网页被永久性转移到另一个URL302——请求的网页被转移到一个新的地址,但客户访问仍继续通过原始URL地址,重定向,新的URL会在response中的Location中返回,浏览器将会使用新的URL发出新的request。303——建议客户访问其他URL或访问方式304——自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容,代表上次的文档已经被缓存,还可以继续使用。305——请求的资源必须从服务器指定的地址得到306——前一版本HTTP中使用的代码,现行版本中不再使用307——申明请求的资源临时性删除
4**(客户端错误类):请求包含错误语法或不能正确执行400——客户端请求有语法错误,不能被服务器所理解
401——请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用
HTTP401.1——未授权:登录失败
HTTP401.2——未授权:服务器配置问题导致登录失败
HTTP401.3——ACL 禁止访问资源
HTTP401.4——未授权:授权被筛选器拒绝
HTTP401.5——未授权:ISAPI或CGI授权失败
402——保留有效ChargeTo头响应
403——禁止访问,服务器收到请求,但是拒绝提供服务
HTTP403.1——禁止访问:禁止可执行访问
HTTP403.2——禁止访问:禁止读访问
HTTP403.3——禁止访问:禁止写访问
HTTP403.4——禁止访问:要求SSL
HTTP403.5——禁止访问:要求SSL128
HTTP403.6——禁止访问:IP地址被拒绝
HTTP403.7——禁止访问:要求客户证书
HTTP403.8——禁止访问:禁止站点访问
HTTP403.9——禁止访问:连接的用户过多
HTTP403.10——禁止访问:配置无效
HTTP403.11——禁止访问:密码更改
HTTP403.12——禁止访问:映射器拒绝访问
HTTP403.13——禁止访问:客户证书已被吊销
HTTP403.15——禁止访问:客户访问许可过多
HTTP403.16——禁止访问:客户证书不可信或者无效
HTTP403.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**(服务端错误类):服务器不能正确执行一个正确的请求
HTTP500——服务器遇到错误,无法完成请求
HTTP500.100——内部服务器错误——ASP错误
HTTP500.11——服务器关闭
HTTP500.12——应用程序重新启动
HTTP500.13——服务器太忙
HTTP500.14——应用程序无效
HTTP500.15——不允许请求global.asaError
501——未实现HTTP
502——网关错误
HTTP503——由于超载或停机维护,服务器目前无法使用,一段时间后可能恢复正常
一个页面从输入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的详细过程
加载一个资源的过程
安全性
XSRF跨站请求伪造
在博客写文章,同时偷偷插入一段<script>
cookie,发送到自己的服务器cookie发送到攻击者的服务器