http协议
对客户端和服务器端之间数据传输的格式规范,格式简称为"超文本传输协议"
客户端向服务器发送请求
服务器端响应客户端的请求
什么是Http协议无状态协议?怎么解决Http协议无状态协议?
无状态协议对于事务处理没有记忆能力。缺少状态意味着后面无法使用前面的状态
无状态协议解决办法: 通过1、Cookie 2、通过Session会话保存。 同一个用户登录记录
------ 联想,http协议无状态,客户端请求服务器端,服务器端做出响应,从开始到结束,不会留下一点儿痕迹。下次做次操作依然如初见,到拜拜。在js中这种情况何其多,垃圾回收处理机制何尝不是。
http协议有什么组成
请求报文包括3部分
-
请求行:包含请求方法、URI、HTTP版本信息
-
请求头
-
请求体

响应报文包括3部分
-
状态行:包含HTTP版本、状态码、状态码的原因短语
-
响应头
-
响应体

url组成

http和https的区别
http1.1 --- 大多数以http开头的网址
http2.0 --- 大多数以https开头的网址, http+tls(ssl证书 加密)
/// tls
端口号不同
http 默认的端口号是80
https默认的端口号是 443
----以百度为例


请求数量不同
http一个链接只能请求一个文件,同时请求的次数有限制
长链接,指只要连接过一次,访问过,下次再连接的时候直接发送请求
https一个链接同时可以请求很多文件
客户端请求报文头信息的设置
http请求中XMLHttpRequest对象下的的方法setRequestHeaders()来设置请求响应头信息。
在原始JS中,放在open()方法和send()方法中间,其值是由属性名和属性值组成的键值对。
xml.setRequestHeader(bstrHeader, bstrValue);
xml.setRequestHeader('Keep-Alive', ' timeout=5, max=100'); // 表示tcp保持连接5s,最多100次请求后就断开
服务器响应的头信息
response headers
响应头是请求服务器响应后返回的对象,其属性是根据需求可设置的
cache-control
private 给指定的用户缓存
public 给任意用户提供缓存
no-cache 缓存前需要服务器验证( 以在本地缓存,可以在代理服务器缓存)
max-age 单位是秒, 在规定的时间内不会再去服务器读取文件
etag
用来标识文件有没有被修改
强etag
只要任何一个文件发生改变值就会发生变化, 静态文件里一个一个逗号发生改变都会有提示。
弱etag 前面有W/
只有发生根本性改变才会发生变化,引用的文件删除或是添加
content-encoding 服务端发送压缩编码的类型
1.gzip 压缩,服务器把文件压缩之后发送给浏览器
2.default
content-type 服务器端发送的类型及采用的编码方式
text/html
image/png
image/gif
image/jpef
text/javascript
status
1.200响应成功
2.301 代表永久重定向
3.302代表临时重定向, 响应头中location
4.304 缓存
5.403没有权限( 服务器上的资源没有访问权限)
6.404 不存在
7.500 服务器错误
Location
http://www.baidu.com(服务端需要客户端访问的页面路径) //在设置重定向的情况下location会有显示
------------------------------------------------------------------------------------------------
关于请求和响应有趣的还是客户端进行请求,后端对请求进行的处理。