「面试」-HTTP相关

105 阅读3分钟

PS: 参考一些博客整理供自己复习~

HTTP和HTTPS

  • HTTP:最广泛网络协议,浏览器高效。
  • HTTPS:安全版,通过SSL加密,加密传输,身份认证,密钥。

区别:

  1. HTTPS相对于HTTP加入了SSL层,加密传输,身份认证。
  2. 需要到ca申请收费的证书。
  3. 安全但是耗时多,缓存不是很好。
  4. 连接方式不同,端口号也不同,HTTP是80,HTTPS是443。

HTTP请求头

  • Accept:浏览器接受的格式。
  • Accept-Encoding:浏览器接受的编码格式。
  • Accept-Language:浏览器接受的语言,用于服务器判断多语言。
  • Cache-Control:控制缓存的时效性。
  • Connection:连接方式,keep-alive且服务端支持,则会复用TCP连接。
  • Host:HTTP访问使用的域名。
  • If-Modified-Since:上次访问时的更改事件,如果服务端认为此时间后自己没有更新,则会给出304响应。
  • If-None-Match:上次访问时使用的E-Tag,通常是页面的信息摘要,比更改时间更加准确一些。
  • User-Agent:客户端标识,因为一些历史原因,多数浏览器的这个字段十分复杂包括操作系统,浏览器内核,版本号等。
  • Cookie:客户端存储的cookie字符串。

HTTP状态码

  • 100 Continue 继续,一般在发送POST请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息。
  • 200 OK 正常返回信息。
  • 201 Created 请求成功并且服务器创建了新的资源
  • 202 Accepted 服务器已接受请求,但尚未处理。
  • 301 Moved Permanently 请求的网页已永久移动到新位置。
  • 302 Found 临时重定向。
  • 303 See Other 临时性重定向,且总是使用GET请求新的URI。
  • 304 Not Modified 自从上次请求后,请求的网页未修改过。
  • 400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
  • 401 Unauthorized 请求未授权。
  • 403 Forbidden 禁止访问。
  • 404 Not Found 找不到与URL相匹配的资源。
  • 500 Internal Server Error 最常见的服务器端错误。
  • 503 Service Unavailable 服务器端暂时无法处理请求(可能是维护或过载)。

HTTP1.0,HTTP1.1,HTTP2.0详解

  1. 长连接
  • 短连接:客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。
  • 长连接:客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用一条已经建立的连接。
  • HTTP实现长连接的方式:HTTP1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。

HTTP1.0 无状态无连接。

HTTP1.1 持久连接、请求管道化、增加缓存处理(如cache-control)、增加Host字段,支持断点传输等。

HTTP2.0 二进制分帧、多路复用、头部压缩、服务器推送。