HTTP相关问题

1.HTTP概述

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是应用层协议,工作于客户端-服务端架构上,基于TCP/IP通信协议来传递数据。

HTTP请求报文响应报文

https://www.cnblogs.com/lmh001/p/9928517.html

2.简述HTTP状态码和对应的信息

1XX:接收的信息正在处理
2XX:请求正常处理完毕
3XX:重定向
4XX:客户端错误
5XX:服务端错误
常见错误码:
301:永久重定向
302:临时重定向
304:资源没修改,用之前缓存就行
400:客户端请求的报文有错误
403:表示服务器禁止访问资源
404:表示请求的资源在服务器上不存在或未找到
请求转发:

请求转发,即request.getRequestDispatcher().forward(),是一种服务器的行为,客户端只有一次请求,服务器端转发后会将请求对象保存,地址栏中的URL地址不会改变,得到响应后服务器端再将响应发给客户端;

请求重定向:

请求重定向,即response.sendRedirect(),是一种客户端行文,从本质上讲等同于两次请求,前一次请求对象不会保存,地址栏的URL地址会改变。

3.HTTP短连接长连接

短连接: 客户端与服务器每进行一次HTTP资源的请求和响应,都会涉及一次TCP的建立连接(三次握手)和断开连接(四次挥手)。
长连接:客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,即多次HTTP资源的请求和响应都使用一个TCP连接。使用长连接的HTTP协议,会在响应头加入这行代码:Connection:keep-alive,Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间,实现长连接需要客户端和服务端都支持长连接。

4.HTTP1.0/1.1/2.0

1.1较1.0的改进

  1. 长连接 : 在HTTP/1.0中,默认使用的是短连接。HTTP 1.1起,默认使用长连接 ,默认开启Connection: keep-alive。 HTTP/1.1的持续连接有非流水线方式和流水线方式 。流水线方式是客户在收到HTTP的响应报文之前就能接着发送新的请求报文。与之相对应的非流水线方式是客户在收到前一个响应后才能发送下一个请求。
  2. 错误状态响应码 : 在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。
  3. 缓存处理 : 在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。
  4. 带宽优化及网络连接的使用 : HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。

2.0较1.1的改进

  1. 多路复用:在 HTTP/1.1 协议中浏览器客户端在同一时间,针对同一域名下的请求有一定数量限制,超过限制数目的请求会被阻塞。而 HTTP/2 的多路复用(Multiplexing) 则允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。因此 HTTP/2 可以很容易的去实现多流并行而不用依赖建立多个 TCP 连接,HTTP/2 把 HTTP 协议通信的基本单位缩小为一个一个的帧,这些帧对应着逻辑流中的消息,并行地在同一个 TCP 连接上双向交换消息。
  2. 二进制分帧层:在应用层新增一个二进制分帧层,用来处理所有 HTTP/2 新增的特性,对于通过 http/2 传输的信息细分为消息和帧,使用二进制格式编码。
  1. 请求与响应复用:HTTP/2 的消息都是在一个 TCP 连接内完成,通过把消息分成一些列的帧,把这些帧交错传输从而达到复用的目的。
  2. 服务器推送:服务器可以对一个客户端请求发送多个响应。有别于 HTTP/1.x 定义的一个请求一个响应,HTTP/2 下服务器可以主动推送内容给客户端。
  3. 标头压缩:压缩请求与响应标头的元数据减少传输的字节大小,通过 HPACK 压缩格式,有别于 HTTP/1.x 中每次请求都带上所有的请求头信息,HTTP/2 通过对传输的标头字段编码后传输索引值,然后通过服务端和客户端维护的索引列表来解码重构标头键值对。

5.HTTP和HTTPS

  1. HTTP协议运行在TCP之上:
    (1)所有传输的内容都是明文
    (2)客户端和服务器端都无法验证对方的身份
    (3)无法保证报文的完整性,报文内容可能被篡改。
  2. HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS 运行在TCP之上:
    (1)内容加密:采用混合加密技术,中间者无法直接查看明文内容
    (2)验证身份:通过证书认证通信双方的身份
    (3)保护数据完整性:防止传输的内容被中间人冒充或者篡改
  3. HTTPS相较于HTTP会更耗时,也耗费CPU和内存资源。

对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;
非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。
混合加密:通信双方利用同一个密钥进行通信加密。在交换密钥环节,使用非对称加密技术(比如说,从客户端到服务器,那么在这样一个安全的通信中,客户端可以将对称加密中的密钥用非对称加密中的公钥进行加密,发送给服务器,然后服务器使用非对称加密技术的私钥进行解密,就拿到了对称加密技术中的密钥),之后建立通信报文交换的阶段则可使用对称加密技术。

6.HTTPS通信步骤

在这里插入图片描述在这里插入图片描述

7.在浏览器中输入url地址 ->> 显示主页的过程

总体来说分为以下几个过程:

  1. DNS解析
  2. TCP连接
  3. 发送HTTP请求
  4. 服务器处理请求并返回HTTP报文
  5. 浏览器解析渲染页面
  6. 连接结束
    在这里插入图片描述
    上图有一个错误,请注意,是OSPF不是OPSF。 OSPF(Open Shortest Path First,ospf)开放最短路径优先协议,是由Internet工程任务组开发的路由选择协议

8.DNS

  1. 功能:域名->IP
  2. 查询方式:递归和迭代
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  1. 补充 :
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值