http协议

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会有显示
 
 
 
------------------------------------------------------------------------------------------------
 
关于请求和响应有趣的还是客户端进行请求,后端对请求进行的处理。
posted @ 2019-04-16 10:47  之乐之  阅读(187)  评论(0编辑  收藏  举报