http
http是什么
http是应用层协议,是在传输层的基础上加了一些自己的内容,比如header等
七层协议(OSI协议层)
(物,数),网,传,(绘,表,应) , 也可以划分为四层结构
- 应用层:http, ftp, dns
- 传输层:tcp(可靠),udp(不可靠)
- 网络层:寻址,IP选择传输路线 (通过ip地址和mac地址)(使用ARP协议凭借mac地址进行通信)
- 链路层:网络链接硬件部分
http
请求头 请求体 请求行
响应头 响应体 响应行
特点
- http请求是不保存状态,一般使用cookie来管理状态
- 为了防止每次请求造成的链接,断开,采用保持链接的方式
keep-alive - 以前发送请求后需要等待并收到响应,才能发下一个,现在都是管线化的方式 (js css 可以并发请求 6 2) cdn
缺点
- 明文发送请求
- 不验证通信方的身份
- 无法验证内容的完整性(内容可能被篡改)
通过
SSL(安全套阶层)建立安全通信线路HTTPS(超文本传输安全协议)
常见请求状态码
- 1 ws
- 2 200(请求成功), 204(请求成功,没有请求体), 206(部分请求)
- 3 301(永久重定向), 302(暂时重定向), 304(服务端缓存), 307(临时重定向)
- 4 400(请求失败), 401(用户没登录), 403(用户登录但是没权限), 404(没找到资源), 405(方法不存在)
- 5 服务器异常, 500, 502, 503
请求方式
- restful api 根据不同的请求方法来做响应(相同的路径,不同的方法来区分)
- get post delete put (options)
- options跨域用(默认先访问一次,一个预检过程,能访问则继续访问)
- 简单请求不会发options
简单请求只用get和post, 如果在其上面加上一些自己的header则变为复杂请求。其他的都是复杂请求。
url uri
- url 唯一定位符,如家庭住址
- uri 唯一标识符,如身份证号
一个完整的请求地址
协议://用户权限@域名: 端口号/资源? 查询参数