1. cookie,sessionStorage和localStorage
都是用来在客户端存储数据以减小不必要的服务端开销
cookie:最大为4096字节(4KB),但一般存储不应超过4095字节。会自动向服务端提交,每次与服务端交互都会传输cookie,cookie要指定作用域,不能跨域使用
sessionStorage:临时存储,在浏览器关闭后即清除数据
localStorage:永久存储,用户不主动清除会永久存储在客户端
sessionStorage和localStorage存储空间比cookie大得多,一般都有5M左右,大数据存储还是要靠服务器,云存储,数据库等。
2.HTTP
(1)CGI和MIME Type
CGI:Common Gateway Interface,用来处理客户端和服务器交互的一种工具,如获取客户端提交的表单内容给服务器进行处理或将服务器处理信息返回给客户端,CGI工具负责使网页具有交互功能。
MIMEType:客户端和服务器交互内容的类型,如HTML、GIF、Flash等。
(2)HTTP无连接,媒体独立,无状态
无连接:每次只处理一个客户端请求,处理完毕后立即断开,节省时间
媒体独立:HTTP可发送任何类型内容,并通过MIME Type指定内容类型
无状态:对处理过的请求没有任何记忆能力,若后续处理需要先前处理过的信息,则它必须要重传
(3)请求与响应
请求方式有8种:
OPTIONS,HEAD,GET, POST, PUT, DELETE,Request-URI ,TRACE,CONNECT
实际应用中常用的也就是 get 和 post,其他请求方式也都可以通过这两种方式间接的来实现。
请求与响应都分为4部分
请求:
请求行:|请求方法(GET、POST等)|空格|URL(www.baidu.com)|协议版本(HTTP/1.1)|回车符|换行符|
请求头部:|头部字段名|:|值|回车符|换行符|(User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3)
|头部字段名|:|值|回车符|换行符|(Host: www.example.com)
......
|头部字段名|:|值|回车符|换行符|(Accept-Language: en, mi)
空行:|回车符|换行符|
请求数据:
响应:
状态行:HTTP/1.1 200 OK
消息报头:date: Mon, 10 Feb 2020 15:32:49 GMT
content-type: text/css
content-length: 7048
空行:
正文:......
(4)响应状态码
常用状态码
200: 请求成功
301:资源(网页等)被永久转移到其他URL
404:请求的资源(网页等)不存在
500:服务器内部错误
状态码分类
1**:信息,服务器接收到请求,需要请求者继续执行操作
2**:成功,操作被成功接收并处理
3**:重定向,需要进一步的操作以完成请求
4**:客户端错误,请求包含语法错误或无法完成请求
5**:服务器错误,服务器在处理请求过程中出现错误
(5)同源和跨域
同源:域名、协议、端口完全相同
跨域:域名/协议/端口有其中的一样不同
不是同源的网络请求会存在跨域问题,这是为了保护用户信息安全。解决跨域问题需要服务器端配合,可用jsonp和cors解决
jsonp:兼容性好,但仅支持GET请求,数据量小。原理是通过创建不受跨域限制的标签(