一、http协议基础+发展历史
HTTP协议(HyperText Transfer Protocol)全称超文本传输协议,是因特网上最广泛的一种网络传输协议,基于TCP/IP协议传输数据。
1.网络模型介绍
网络协议分层(五层模型)
物理层:定义物理设备如何传输数据 数据链路层:通信实体间建立数据链路联系 网络层:为数据在结点之间的传输创建逻辑链路 传输层:可靠的端对端(end-to-end)的服务,传输层向高层屏蔽了下层的数据通信细节 应用层:为软件提供很多服务,构建于tcp之上,屏蔽了网络传输的相关细节
2.http协议的发展历史
http/0.9 只有get 没有header等信息,服务器发送完毕,就关闭tcp连接 http/1.0 增加命令,增加status code、header,多字符集支持等 http/1.1 持久连接,pipeline,host和其他一些命令 http2 所有数据以二进制传输、同一个连接里面发送多个请求不在需要按照顺序来、头信息压缩以及推送等提高效率的功能
3.http三次握手
user和服务器之间建立tcp connection,http request在tcp connection中传输 建立连接 syn建立了第一个标志位
3.URI、URL、URN
URI统一资源标志符,用来标识互联性网上的信息资源,包含URL和urn URL统一资源定位器,路由定位 urn永久统一资源定位符,资源移动后还能访问
4.http报文
http方法: 用来定义对于资源的操作,常用的get、post, http code: 定义服务器处理结果,各个区间的code有各自的语义,好的http协议通过code判断结果
5.创建简单的web服务
二、http各种特性
1.http客户端
network请求资源 curl展示请求响应报文
2.cors跨域请求限制及其解决
jsonp
3.缓存头cache-control的含义和使用
在请求中使用 在响应中使用
4.cookie
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。 通过“set-cookie”进行设置cookie,不能跨域设置。常用cookie保存session
5.http长链接
同一个connection id 就是同一个tcp连接
"Connection":'keep-alive'
6.数据协商
分类:请求 返回 accept accept-encoding accept-language user-agent content-type content-encoding content-language
7.redirect
HTTP重定向:服务器无法处理浏览器发送过来的请求(request),服务器告诉浏览器跳转到可以处理请求的url上。(浏览器会自动访问该URL地址,以至于用户无法分辨是否重定向了。) 重定向的返回码3XX说明。Location响应首部包含了内容的新地址或是优选地址的URL。
8.CSP内容安全策略
限制资源的获取、报告资源越权获取
"Content-Security-Policy":"default-src http: https:"
可以避免xfs等攻击
|