HTTP协议


HTTP 是一个 请求-响应协议,是两点间传输超文本数据的约定和规范。

HTTP 是一个 基于TCP协议的应用层传输协议

1. HTTP状态码

状态码 描述
1XX 表示目前是协议处理中间状态
2XX 成功,报文已接受且正确处理
3XX 重定向,资源位置发生变动
4XX 客户端错误,请求报文有误,服务器无法处理
5XX 服务器处理请求时发生错误

2. HTTP报文

  • 请求报文
  • 响应报文
GET /admin_ui/rdx/core/images/close.png HTTP/1.1
Accept: */*
Referer: http://xxx.xxx.xxx.xxx/menu/neo
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Host: xxx.xxx.xxx.xxx
Connection: Keep-Alive
Cookie: startupapp=neo; is_cisco_platform=0; rdx_pagination_size=250%20Per%20Page; SESSID=deb31b8eb9ca68a514cf55777744e339

3. HTTP方法

HTTP方法 作用
GET 获取资源
HEAD 获取报文头部
POST 传输实体主体
PUT 上传文件,不带验证,一般弃用
PATCH 对资源部分修改
DELETE 删除文件
OPTIONS 查询支持的方法
CONNECT 要求在与代理服务器通讯时简历隧道
TRACE 追踪路径

4. HTTP版本

版本 信息
1.0 每发起一次请求,都要建立一次TCP链接(三次握手)
1.1 ①提出了长连接通信方式,减少TCP连接开销 。②管道网络传输,减少整体效应时间
2.0 ①多路复用 ②首部压缩 ③服务端推送 ④采用二进制格式

http无状态、明文传输、不安全

HTTP安全问题

  • 使用明文进行通信,可能发生窃听
  • 不验证通信方的身份,通信方身份可能伪装
  • 无法证明报文的完整性,报文可能被篡改

5. HTTPS

在TCP和HTTP网络层之间加入了SSL/TLS安全协议

  • 功能
    • 加密(Encryption)
      • 对称密匙加密
      • 非对称密匙加密
      • 混合加密
    • 身份认证(Authentication)
      • 通过证书来对通信方进行认证
      • 数字证书认证机构(CA)是可信赖的第三方机构
    • 数据一致性 (Data integrity)
      • 通过 MD5 报文摘要
  • 缺点
    • 因为加密解密等过程,速度会更慢
    • 需要证书授权费用

HTTP 先和 SSL 通信,再由 SSL 和 TCP 通信,隧道通信

6. 面试题

谈一谈HTTP协议的优缺点

灵活可扩展:语法上只规定了基本格式,传输形式上可传输各种格式数据

请求-应答模式

可靠传输:HTTP基于TCP/IP

无状态:分场景回答,有时如购物系统需要保存用户信息,有时无状态会减少网络开销

明文传输:报文不使用二进制数据,而是文本形式

队头阻塞:当 http 开启长连接时,共用一个TCP连接,当某个请求时间过长时,其它的请求只能处于阻塞状态。

谈一谈 http 各版本之间的差异

谈一谈 http 常见状态码

DNS 是如何工作的?

DNS 协议提供的是一种主机名到 IP地址 的转换服务,就是我们常说的域名系统。属于应用层协议,通常该协议运行在 UDP 协议之上,使用的是 53 端口号 。

DNS 为什么使用 UDP 协议作为传输层协议?

为了避免使用 TCP 协议造成的连接时延

谈一谈正向代理和反向代理

正向代理:我们常说的代理也就是指正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求。

反向代理:隐藏了真实的服务器,反向代理服务器一般用于负载均衡


文章作者: ╯晓~
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ╯晓~ !
评论
  目录