http协议

一、HTTP协议基础及发展历史
1、http概念
在这里插入图片描述

2、5层网络模型介绍

物理层:定义物理设备如何传输数据
数据链路层:在通信的实体间建立数据链路链接
网络层:为数据在节点之间传输创建逻辑链路
传输层:向用户提供可靠的端到端服务,向高层屏蔽了下层数据通信的细节(三次握手)
应用层:为应用软件提供了很多服务,构建于TCP协议之上,屏蔽网络传输相关细节
在这里插入图片描述

3、http协议的发展历史
http/0.9:只有get,没有header等描述数据的信息,服务器发生完毕,就关闭TCP连接
http/1.0:增加了很多命令,增加status code和header,多字符集支持、多部分发送、权限、缓存等。服务端响应后即结束,tcp链接三次握手。
http/1.1:持久连接(解决三次握手开销),pipeline(通过连接里面发送多个请求,串行),增加host和其他一些命令(物理服务部署),客户端主动请求,服务端被动接受,并行
http/2.0:所有数据以二进制传输,同一个连接里面发送多个请求不再需要按照顺序来(并行,同一个用户,对同一个服务发起网页请求的时候,只需要发起一个tcp连接),头信息压缩以及推送等提高 效率的功能。服务端可主动,请求html同时,服务端把资源推送到客户端,串行
HTTPS

4、http三次握手
用途:规避网络传输当中延时而导致服务器开销的问题
客户端:创建请求的数据包到服务端,syn=1,seq=x
服务端:syn=1,ack=x+1,seq=y
客户端:ack=y+1,seq=z

wireshark工具

5、URI\URL\URN
URI:统一资源标志符,用来标识互联网上唯一的信息资源,包含URL与URN
URL:统一资源定位器,包含ftp协议等
URN:永久统一资源定位符,资源移动之后还能被找到,目前不成熟

6、http报文
在这里插入图片描述

HTTP方法:用来定义对资源的操作
HTTP CODE:定义服务器对请求的结果,各区间的code有各自的语义,建议前期定义语义化

二、HTTP各种特性总览
1、认识http客户端(curl命令行工具)
是实现发送http报文的工具

2、CORS跨域请求的限制于解决
原因:浏览器同域的限制
处理:
服务器head头加*
jsop原理script、link、a、img标签上的src或者ref是允许跨域的
本地代理

3、CORS跨域限制以及预请求验证
CORS跨域限制
CORS预请求
允许:GET\HEAD\POST
其他:使用预请求验证后才能进行发送

允许的Content-Type
允许:text/plain \ multipart/form-data \ application/x-www-form-urlencoded
其他:使用预请求验证后才能进行发送

其他限制:请求头限制、XMLHttpRequestUpload对象均没有注册任何事件监听器、请求中没有使用ReadableStream对象

预请求
首先发送一个请求request method:option,通过option请求获得服务端的认可,服务端提供返回告诉浏览器,下一个请求是允许的。

配置:Access-Control-Max-Age

4、缓存头Cache-Control的含义和使用
代理服务器、浏览器、缓存服务器,默认浏览器设置
可缓存性:
public:代表http请求所经过的任何路径当中(代理服务、发起请求的客户端),都可以对返回内容的缓存的操作
pricate:只允许发起请求的浏览器
no-cache:任何均不允许,本地可以存,但是必须服务器验证过后
到期:
max-age=:缓存内容过期时间,过期后浏览器再次发送请求到服务器端请求新的内容
s-maxage=:可代替max-age,只有在代理服务器中生效
max-stale= :浏览器(发起端)主动带的头,即便缓存已经过期,只要在max-stale时间内任然可以使用缓存
重新验证:
must-revalidate:在设置max-age过期后,必须去源服务端发送请求,重新获取数据,再验 证是否过期,不可直接使用本地缓存
proxy-revalidate:应用在缓存服务器当中,指定缓存服务器
其他
no-store:本地与代理服务器均不可以,每次必须重新请求
no-transform:主要用于代理服务器,不允许随意改动,返回内容

5、缓存验证last-modified和Etag的使用
last-modified:上次修改时间,配合IF-Modified-since或者if-Unmodified-Since使用,对比上次修改时间以验证资源是否需要更新
Etag:数据签名,资源数据修改则签名会修改
6、cookie和session(hostadmin工具,ip地址映射)
cookie:通过Set-Cookie设置,Secure只在https的时候发送,HttpOnly无法通过document.cookie访问,domian设置一级域名下的cookie,二级域名均可访问;cookie不可跨域访问
session:
7、http长连接

8、数据协商
请求:Accept、Accept-Encoding,Accept-Language,User-Agent
返回:Content,Content-Type,Content-Encoding(压缩),Content-Language

9、Redirect
code:302(临时路径)、301(永久路径,会有缓存,需要清除本地缓存),资源重定向

10、CSP内容安全策略Content-Security-Policy
限制资源获取:
限制方式、资源类型(img-src\style-src\font-src等资源加载)
报告资源获取越权:
在这里插入图片描述
三、Nginx代理以及面向未来的HTTP
Nginx安装和基础代理配置
安装包,dos命令下执行nginx.exe
Ngix代理配置和代理缓存的用处
# proxy_pass http://127.0.0.1;
# proxy_set_header Host $host; // 区分实际访问的服务,一台机器跑不同的服务
HTTPS解析
在这里插入图片描述

使用Nginx部署HTTP服务

HTTP2的优势和Nginx配置HTTP2的简单使用
信复用
分帧传输
ServerPush

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值