HTTP网络协议

网络协议

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一起用)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180812G0Q8TN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券