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——禁止访问:要求SSL 128
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规则构建、layoutpaintonload/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的详细过程

加载一个资源的过程

安全性