DNS和CND
DNS就是域名解析器,负责把域名转换为对应的IP地址
CND是内容分发网络,是一种网络缓存技术,用来加速静态内容的访问。
如果使用了CND加速,就变成了下图的流程
- 域名和CND加速是绑定的
- CND搭建本身是一个很高的成本,需要遍布各地的服务器,以空间换时间
互联网资源URI
URI表示资源,URL是资源在互联网中的地址,即统一资源定位符
MIME Type
资源返回后,有很多种类型,比如文本、视频、图片等,要根据类型的不同做不同的渲染
文本文件:text/html,text/plain,text/css,application/xhtml+xml,application/xml
图片文件:image/jpeg,image/gif,image/png.
视频文件:video/mpeg,video/quicktime
设置他们的方式有两个字段:
Accept:表明发送端希望接受的数据类型
Content-Type:发送端发送的数据类型
状态码
服务端返回给客户端的状态标志,常见的
200:一切正常
301:永久重定向
403:权限问题
404:请求资源不存在
500:服务端内部错误
请求方式
常用的:
GET:发送URL地址请求服务端资源,发送的内容有限,一般用于查询操作
POST:发送一个实体给服务端,一般用于创建操作
PUT:与POST的区别就是,他发送两次相同的请求,后一次后覆盖前一次,一般用于更新操作(但是这种控制一般放在后端了,put用的比较少)
DELET:用于删除操作
Restful风格
- 为了规范接口命名,不出现动词,只表示资源,具体的动作体现在请求方式
- 合理利用状态码
- rest面向资源,一个url代表一个资源
Accept-Encoding
浏览器告诉服务器,自己支持的编码类型,一边服务器对返回的一些数据做压缩操作
无状态
http本身是无状态的,cookie和session就是为了存储状态,一个存在客户端一个存在服务端。
cookie
服务端返回给客户端的响应报文中,会有一个set-cookie字段,通知客户端保存cookie
客户端下次访问服务端,就可以带着cookie去访问
session
session是一种散列结构
服务端检查客户端的请求报文中是否有session-id字段,有的话根据这个id去服务端中查找对应的session
如果找到的话就拿到使用,找不到的话就新建一个