HTTP的几种请求方法用途
- GET 方法
发送一个请求来取得服务器上的某一资源
- POST 方法
向 URL 指定的资源提交数据或附加新的数据
- PUT 方法
跟 POST 方法很像,也是想服务器提交数据。但是,它们之间有不同。 PUT 指定了资源 在服务器上的位置,而 POST 没有
- HEAD 方法
只请求页面的首部
- DELETE 方法
删除服务器上的某资源
- OPTIONS 方法
它用于获取当前 URL 所支持的方法。如果请求成功,会有一个 Allow 的头包含类 似 “GET,POST” 这样的信息
- TRACE 方法
TRACE 方法被用于激发一个远程的,应用层的请求消息回路
- CONNECT 方法
把请求连接转换到透明的 TCP/IP 通道
从浏览器地址栏输入url到显示页面的步骤
基础版本
- 浏览器根据请求的 URL 交给 DNS 域名解析,找到真实 IP ,向服务器发起请求;
- 服务器交给后台处理完成后返回数据,浏览器接收文件( HTML、JS、CSS 、图象等);
- 浏览器对加载到的资源( HTML、JS、CSS 等)进行语法解析,建立相应的内部数据结构 (如 HTML 的 DOM );
- 载入解析到的资源文件,渲染页面,完成。
精简版
- 从浏览器接收 url 到开启网络请求线程(这一部分可以展开浏览器的机制以及进程与线程 之间的关系)
- 开启网络线程到发出一个完整的 HTTP 请求(这一部分涉及到dns查询, TCP/IP 请求,五 层因特网协议栈等知识)
- 从服务器接收到请求到对应后台接收到请求(这一部分可能涉及到负载均衡,安全拦截以 及后台内部的处理等等)
- 后台和前台的 HTTP 交互(这一部分包括 HTTP 头部、响应码、报文结构、 cookie 等知 识,可以提下静态资源的 cookie 优化,以及编码解码,如 gzip 压缩等)
- 单独拎出来的缓存问题, HTTP 的缓存(这部分包括http缓存头部, ETag , catchcontrol 等)
- 浏览器接收到 HTTP 数据包后的解析流程(解析 html -词法分析然后解析成 dom 树、解 析 css 生成 css 规则树、合并成 render 树,然后 layout 、 painting 渲染、复合图层 的合成、 GPU 绘制、外链资源的处理、 loaded 和 DOMContentLoaded 等)
- CSS 的可视化格式模型(元素的渲染规则,如包含块,控制框, BFC , IFC 等概念)
- JS 引擎解析过程( JS 的解释阶段,预处理阶段,执行阶段生成执行上下文, VO ,作 用域链、回收机制等等)
- 其它(可以拓展不同的知识模块,如跨域,web安全, hybrid 模式等等内容)
HTTP状态码及其含义
- 1XX :信息状态码
100 Continue 继续,一般在发送 post 请求时,已发送了 http header 之后服务端将 返回此信息,表示确认,之后发送具体参数信息
- 2XX :成功状态码
200 OK 正常返回信息 201 Created 请求成功并且服务器创建了新的资源202 Accepted 服务器已接受请求,但尚未处理
- 3XX :重定向
301 Moved Permanently 请求的网页已永久移动到新位置。302 Found 临时性重定向。303 See Other 临时性重定向,且总是使用 GET 请求新的 URI 。304 Not Modified 自从上次请求后,请求的网页未修改过。
- 4XX :客户端错误
400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内 容发起请求。401 Unauthorized 请求未授权。403 Forbidden 禁止访问。404 Not Found 找不到如何与 URI 相匹配的资源。
- 5XX: 服务器错误
500 Internal Server Error 最常见的服务器端错误。503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)。