HTTP协议内容和方法
基本方法 | GET | - 从服务器获取资源 |
POST | - 在服务区创建资源 | |
PUT | -在服务器修改资源(幂等性) | |
DELETE | - 在服务器删除资源 | |
其他方法 | OPTION | - 跨域 |
TRACE | - 用于显示调试信息,追溯整个http请求的链路,多数网站不支持 | |
CONNECT | - 代理 | |
PATCH | - 对资源进行部分更新(极少用) |
常见的HTTP状态码
1xx | 提供信息 | 100 | continue |
101 | 协议切换 | ||
2xx | 成功 | 200 | Ok |
201 |
Created 已创建 -POST |
||
202 | Accepted 已接收 - 接受到异步,可以放loadin图。。。 | ||
203 | Non-Authotitative-Infomation 非权威内容 | ||
204 | No Content 没有内容 | ||
205 | Reset Content 重置内容 | ||
206 | Partial Content 服务器下发了部分内容(range header) | ||
3xx | 重定向 | 300 | Multiple Choices 用户请求了多个选项的资源(返回选项列表) |
301 | Moved Permanently 永久转移 (所有请求都会变成get) vs 308 ? | ||
302 | Found 资源被找到(以前是临时转移) vs 303 vs 307 ? | ||
303 | See Other 可以使用GET方法在另一个URL找到资源 | ||
304 | Not Modified 没有修改(缓存) | ||
305 | Use Proxy 需要代理 | ||
307 | Temporary Redirect 临时重定向(使用原请求的method重定向) | ||
308 | Permanent Redirect 永久重定向(使用原请求的method重定向) | ||
4xx | 客户端错误 | 400 | Bad Request 请求格式错误 |
401 | Unauthorized 没有授权 | ||
402 | Payment Required 请先付费 | ||
403 | Forbidden 禁止访问 | ||
404 | Not Found 没有找到 | ||
405 | Method Not Allowed 方法不被允许 | ||
406 | Not Acceptable 服务端可以提供的内容和客户端期待的不一样 | ||
5xx | 服务端错误 | 500 | Internal Server Error 内部服务器错误 |
501 | Not Implemented 没有实现 | ||
502 | Bad Gateway 网关错误 | ||
503 | Service Unavailable 服务器不可用 | ||
504 | Gateway Timeout 网关超时 | ||
505 | HTTP Version Not Supported 版本不支持 |
常见HTTP头
Content-Length |
发送给接收者的Body内容长度(字节) · 一个byte是8bit · utf-8编码的字符是1-4个字节 |
User-Agent |
帮助区分客户端特性的字符串 · 操作系统 · 浏览器 · 制造商(手机类型等) · 内核类型 · 版本号 ······ |
Content-Type |
帮助区分资源的媒体类型 · text/html · text.css · application/json · image/jpeg · ······ |
Origin |
描述请求来源地址 · scheme://host:port · 不含路径 · 可以是null |
Accept |
建议服务端返回何种媒体类型(MIME Type) · */* 代表所有类型(默认) · 多个类型用逗号隔开,eg: text/html,application/json |
Accept-Encoding |
建议服务端发送哪种编码(压缩算法) · deflate,gzip;q=1.0,*;q=0.5 |
Accept-Language |
建议服务端传递哪种语言 · Accept-Language:fr-CH,fr;q=0.9,en;9=0.8,de;q=0.7,*;q=0.5 |
Referer |
告诉服务端打开当前页面的上一张页面的URL;如果是ajax请求,那么就告诉服务端发送请求的URL的什么 · 非浏览器环境有时候不发生Refer(或者虚拟Referer,通常是爬虫) · 常常用于用户行为分析 |
Connection |
决定连接是否在当前事务完成后关闭 · Http1.0 默认是 close · Http1.1 后默认是 keep-alive |
思考?
平时工作中前端和服务端又没哟遵循HTTP协议规范?