• 深入解析HTTP(web开发详细理解原理)【JavaWeb】


    一.HTTP基本知识

    在这里插入图片描述

    超文本传输协议HTTP:是一种简单的请求-响应协议,通常在TCP上运行。它指定客户端可以向服务器发送哪些消息以及将得到什么响应。
    HTTP:

    • 文本:html,字符串…
    • 超文本:音乐,图片,视频等等。
    • 端口号80。
      Https:比http安全,端口:443。

    二.http1.0和http2.0对比

    http1.0:规定浏览器和服务器仅保持短期连接。
    浏览器的每个请求都需要与服务器建立TCP连接。服务器完成请求处理后,会立即断开TCP连接。服务器不会跟踪每个客户,也不会记录过去的请求。
    HTTP 1.1:支持持久连接,默认情况下使用持久连接。
    可以在同一TCP连接中传输多个HTTP请求和响应。多个请求和响应可以重叠,并且可以同时执行多个请求与响应。更多的请求头和响应头(例如,HTTP 1.0没有主机字段)。

    三.HTTP请求

    以B站为例:
    打开F12,找到bilibili,查看Headers:详细解析如下:
    在这里插入图片描述

    3.1 常规标头

    常规标头如下:

    Request URL: https://www.bilibili.com/
    Request Method: GET
    Status Code: 200 
    Remote Address: 120.192.82.75:443
    Referrer Policy: strict-origin-when-cross-origin
    
    • 1
    • 2
    • 3
    • 4
    • 5

    上述常规标头解释:
    Request URL:请求 URL。 b站的域名
    Request Method: 请求方式。 get方法
    Status Code:状态码。 200
    Remote Address:远程地址。 对应b站的远程地址。
    Referrer Policy: 引用站点策略。 引用的协议。

    3.2 响应头

    b站的响应头如下:

    cache-control: no-cache
    content-encoding: gzip
    content-type: text/html; charset=utf-8
    set-cookie: innersign=0; path=/; domain=.bilibili.com
    
    • 1
    • 2
    • 3
    • 4

    上述响应头解释:
    cache-control:缓存控制。 no-cache禁止使用缓存
    content-encoding:编码格式。 gzip格式
    content-type: 链接方式。 text/html; charset=utf-8

    3.3请求标头

    请求标头如下:

    :authority: www.bilibili.com
    :method: GET
    :path: /
    :scheme: https
    accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    accept-encoding: gzip, deflate, br
    accept-language: zh-CN,zh;q=0.9
    cache-control: max-age=0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    和响应头对应,基本参数作用相同,差别不大。

    3.4请求行

    请求行中的请求方法:get
    请求方法:get、post、head、delete、put、trace…
    Get:请求可以在有限的大小下携带更少的参数。数据内容将显示在浏览器的URL地址栏中,这是不安全但高效的
    Post:请求可以携带的参数是无限的,并且大小是无限的。数据内容不会显示在浏览器的URL地址栏中,这是安全的,但效率低下。

    3.5 消息头

    主要的参数:

    Accept
    Accept-Encoding
    Accept-Language
    Cache-Control
    Connection
    
    • 1
    • 2
    • 3
    • 4
    • 5

    上述消息头主要的参数解释如下:
    Accept:支持的数据类型。
    Accept-Encoding:支持的编码格式。
    Accept-Language:语言环境。
    Cache-Control:缓存控制,和上面一样。
    Connection:保活状态

    四.HTTP 响应

    响应是存在于服务器和客服端之间的。

    4.1 响应体

    Accept:支持的数据类型。
    Accept-Encoding:支持的编码格式。
    Accept-Language:语言环境。
    Cache-Control:缓存控制,和上面一样。
    Connection:保活状态。
    HOST:主机。
    Refresh:刷新。
    Location:重定位。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4.2 响应状态码(重点)

    200 - 请求成功
    301 - 资源(网页等)被永久转移到其它URL
    3**:3开头的是重定向。
    404 - 请求的资源(网页等)不存在
    500 - 内部服务器错误
    502 - 网关错误
    在这里插入图片描述

    五. 思考题

    留下一个经典的思考题题目:

    在浏览器的地址栏中输入地址并按enter键时,页面会显示出来。怎么搞的?

  • 相关阅读:
    活动选择问题(动态规划和贪心算法)
    java中的包
    【蜂鸟E203的FPGA验证】Chap.8 Vivado综合与性能分析-Vivado性能分析
    vue怎么跳转页面?
    R语言使用magick包的image_scale函数对图像进行缩放(resize)、可以自定义从宽度或者高度角度进行缩放
    【SLAM】IMU预积分的理解、手把手推导(2/4)
    C++_访问(权限)控制和继承
    FastAPI 学习之路(二)
    虹科示波器 | 汽车免拆检修 | 2015款奔驰G63AMG车发动机偶尔自动熄火
    全篇创新点!图像融合9大魔改创新方案,暴力涨点
  • 原文地址:https://blog.csdn.net/weixin_52908342/article/details/126129312