HTTP 实用指南 | 青训营笔记

107 阅读4分钟

这是我参与「第四届青训营 」笔记创作活动的第6天

本堂课重点内容

  1. HTTP协议简介
  1. HTTP协议的基本结构与发展历程
  1. 常见场景中的HTTP协议应用
  1. 在不同的环境中发起HTTP请求
  1. 知识扩展,了解更多网络通信协议

详细知识点介绍

使用Http协议访问Web过程

当用户在浏览器地址栏输入URL,browser进程处理URL信息后向浏览器内核发送请求,请求经过应用层->传输层->网络层->链路层到达服务器端,相应的服务器端返回响应,浏览器内核读取响应并进行渲染,最终页面加载完成。

HTTP——Hyper Text Transfer Protocol超文本传输协议

  • 应用层协议
  • 请求 响应
  • 简单可扩展
  • 无状态

与http密不可分的三个协议:IP、TCP和DNS

  1. 负责传输的IP协议:ip(internet protocol)网际层协议,把各种数据包传送给对方,中间会涉及到跨网段传输,用到ARP技术,奖逻辑网络地址转化昵称mac地址。

  2. 确保可靠性传输的TCP协议:TCP位于传输层,提供可靠的字节流服务,TCP协议会通过三次握手建立连接。

  3. 负责域名解析的DNS服务:DNS将域名转换成IP地址。

报文

image.png

image.png

  • 2XX:200(正常返回)、204(No Content,请求得到正常处理,返回的响应报文不含实体的主体部分,浏览器页面不发生更新)、206(Partial Content该状态码表示
    对客户端进行了范围请求)
  • 3XX:301(Move Permanently永久性重定向)
  • 4XX:客户端出现了问题,400(Bad Request表示请求报文存在语法错误)、401(Unauthorized,表示发送的请求需要通过HTTP认证(BASIC认证、DIGEST认证)的认证信息)、403(Forbidden,服务器拒绝访问请求)、404(Not Found服务器没有请求的资源)
  • 5XX:500(Internal Server Error服务器未知的错误)、503(Service Unavailable表明服务器暂处于超载负荷或者正在停机维修)

RESTful API 一种API设计风格;REST - Representational State Transfer

缓存

  • 强缓存

两个请求头 Expires,时间戳;Cache-Control

  • 协商缓存

    • Etag/lf-None-Match :资源的特定版本的标识符,类似于指纹
    • Last-Modified/lf-Modified-Since:最后修改时间

image.png

HTTP/2

  • 帧(frame) :HTTP/2通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流。可以交错发送,接收方再重组织

  • 消息:与逻辑请求或响应消息对应的完整的一系列帧。

  • 数据流:已建立的连接内的双向字节流,可以承载一条或多条消息。

  • HTTP/2连接都是永久的,而且仅需要每个来源一个连接

  • 流控制︰阻止发送方向接收方发送大量数据的机制

HTTPS

image.png

WebSocket

  • 浏览器与服务器进行全双工通讯的网络技术
  • 典型场景∶实时性要求高,例如聊天室
  • URL使用ws://或wss://等开头

课后个人总结

HTTP协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

主要特点

1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

3.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
5、支持B/S及C/S模式。

参考资料

Docs (feishu.cn)

关于HTTP协议,一篇就够了 - ranyonsue - 博客园 (cnblogs.com)