Home
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 设计模式
  • JavaSE
  • JVM
  • JUC
  • Netty
  • CPP
  • QT
  • UE
  • Go
  • Gin
  • Gorm
  • HTML
  • CSS
  • JavaScript
  • vue2
  • TypeScript
  • vue3
  • react
  • Spring
  • SpringMVC
  • Mybatis
  • SpringBoot
  • SpringSecurity
  • SpringCloud
  • Mysql
  • Redis
  • 消息中间件
  • RPC
  • 分布式锁
  • 分布式事务
  • 个人博客
  • 弹幕视频平台
  • API网关
  • 售票系统
  • 消息推送平台
  • SaaS短链接系统
  • Linux
  • Docker
  • Git
GitHub (opens new window)
Home
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 设计模式
  • JavaSE
  • JVM
  • JUC
  • Netty
  • CPP
  • QT
  • UE
  • Go
  • Gin
  • Gorm
  • HTML
  • CSS
  • JavaScript
  • vue2
  • TypeScript
  • vue3
  • react
  • Spring
  • SpringMVC
  • Mybatis
  • SpringBoot
  • SpringSecurity
  • SpringCloud
  • Mysql
  • Redis
  • 消息中间件
  • RPC
  • 分布式锁
  • 分布式事务
  • 个人博客
  • 弹幕视频平台
  • API网关
  • 售票系统
  • 消息推送平台
  • SaaS短链接系统
  • Linux
  • Docker
  • Git
GitHub (opens new window)
  • HTTP

    • Get 与 Post
    • 状态码&字段
    • 输入URL到返回页面全过程
    • HTTP
      • HTTP协议特点
      • HTTP缓存
    • HTTP演进
    • HTTPS
    • WebSocket
    • RPC
    • 粘包问题
    • Java中的网络请求
    • 请求报文与响应报文
    • HTTP如何保存用户状态
    • 长连接与短连接
    • SSL TLS
  • TCP

  • UDP

  • IP

  • 网络安全

  • 计算机网络
  • HTTP
Nreal
2023-11-23
目录

HTTP

# HTTP协议特点

  • 无连接:每次请求都要建立连接;

  • 无状态:每次请求都是独立的,请求结束不会记录连接信息,虽然减少了网络开销,但是如果多个请求的发起者是同一个客户端,意味着如果后续处理的信息需要前面的信息,则必须重传;

  • 明文传输:不安全,如果通信过程中存在中间人,可以轻易获取请求的所有内容;

  • 队头阻塞:当开启长连接,多个http请求复用一个tcp连接,同一时刻只能处理一个请求,当前面的请求耗时过长,其它请求只能处于阻塞状态;

    针对HTTP1.1,引入了长连接,可以减少TCP握手时间,提供请求速度;

# HTTP缓存

一些重复性HTTP请求,可以把这对请求响应的数据缓存在本地,那么下次直接读取本地的数据;

  • 强制缓存

    只要浏览器上缓存没有过期,直接使用浏览器的本地缓存,决定使用权在浏览器;

  • 协商缓存

    有些请求的响应码是304,这是告诉浏览器可以使用本地缓存,通过服务端告知客户端是否可以使用缓存的方式被称为协商缓存;

输入URL到返回页面全过程
HTTP演进

← 输入URL到返回页面全过程 HTTP演进→

Theme by Vdoing | Copyright © 2021-2024
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式