网络协议
HTTP(常用端口80)协议是属于应用层,应用层还有FTP、TELNET、SMTP、DNS等协议
TCP,UDP协议是属于传输层的协议
网络层大家比较熟悉的有IP协议,不等同于IP地址,还包括MAC地址(网卡地址)等.ARP协议可以根据 IP 地址反查对应的 MAC 地址
大家听的比较多的TCP/IP其实是个协议组
HTTPS(常用端口443)在应用层(HTTP)和传输层(TCP)之间,新增了一个套接层SSL/TLS,起一个加密的作用
Socket是一种连接模式,不是协议,是对TCP/IP协议的封装,通过Socket,我们才能使用TCP/IP协议
TCP
提供可靠的字节流服务
1.1 字节流服务:为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理 1.2 可靠:能够确认数据最终是否送达对方
三次握手,提供可靠服务
HTTP
不保存状态,引入了 Cookie 技术(可以参考我的另外一篇文档详细介绍),保持状态功能
持久连接,默认 TPC 连接不会断开
管线化,同时并行发送多个 HTTP 请求
压缩传输内容,通常有gzip,compress,deflate
发送过程
发送端在层与层之间传输数据,没经过一层会打上一个该层所属的受不信息
HTTP 报文
返回报文的状态码,第一位指定了相应类型,后两位无分类(一般实现 https 跳转,是302和307相结合的跳转,会丢失 post 请求)
200 成功
204 没内容
206 范围请求
301 永久重定向
302 临时重定向
303 用GET重定向请求
304 资源没变(非重定向)
307 临时重定向(不会改post为get,但是浏览器兼容不好)
400 报文语法错误
401 需要认证,弹出认证对话窗口
403 未授权
404 无法找到请求的资源
500 服务器错误
503 服务超负荷
虚拟主机多域名
相同 IP 地址下,由于虚拟主机可以寄存多个不同主机名和域名的 web 网站,因此发送 http 请求的时候,必须在 Host 首部指定主机名或域名的 URI
HTTP 认证
BASIC 认证(不常用,密码泄露不安全)
DIGEST 认证(不常用,密码不泄露,但是不能防止伪装)
SSL 认证(先发证书给客户端发起 https 请求)
FormBase 表单账号密码认证(常用,跟3一起用)
领取专属 10元无门槛券
私享最新 技术干货