JavaWeb学习打卡03(超文本传输协议Http、Https详解)

什么是 Http

HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。

  • 文本:html、字符串......
  • 超文本:图片,音乐、地图、视频、定位......
  • 默认端口号:80

Https  :表示安全的http(常用)

  • 默认端口号:443

HTTP的两个时代

  • http1.0
    • HTTP / 1.0 :客户端可以与web服务器连接后,只能获得一个web资源,然后断开连接。
  • http2.0
    • HTTP / 1.1 :客户端可以与web服务器连接后,可以获得多个web资源。

Http请求

  • 客户端----  发送请求(Request) ---- 服务器

百度:

请求 URL  https://www.baidu.com/  请求的地址
请求方法  GET                     GET / POST方法
状态代码  200 OK
远程地址  157.148.69.186:443
引用站点策略  strict-origin-when-cross-origin
accept  text/html
accept-encoding  gzip, deflate, br, zstd
accept-language  zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
cache-control  max-age=0
connection  keep-alive
  1. 请求行
    1. 请求行中的请求方式:GET
    2. 请求方式有:Get,Post,HEAD,DELETE,PUT,TRACT......
      1. get:请求能够携带的参数比较少,大小有限制会在浏览器的URL地址栏显示数据内容,不安全但高效
      2. post:请求能够携带的参数没有限制,大小没有限制不会在浏览器的URL地址栏显示数据内容,安全但不高效
  2. 消息头
accept  :告诉浏览器,它所支持的数据类型
accept-encoding  :支持的编码格式     GBK   UTF-8   GB2312  
accept-language  :告诉浏览器它的语言环境
cache-control    :缓存控制
connection       :告诉浏览器,请求完成是断开还是保持连接
HOST:主机

Http响应

  • 服务器----  响应  ----   客户端

百度:

Cache-Control : private  缓存控制
connection  keep-alive   连接 
content-encoding:gzip    编码
content-type : text/html; 类型

响应体

accept  :告诉浏览器,它所支持的数据类型
accept-encoding  :支持的编码格式     GBK   UTF-8   GB2312  
accept-language  :告诉浏览器它的语言环境
cache-control    :缓存控制
connection       :告诉浏览器,请求完成是断开还是保持连接
HOST:主机
Refresh: 告诉客户端,多久刷新一次;
Location :让网页重新定位

响应状态码

200:请求成功  200

3xx:请求重定向

  • 重定向:你重新到我给你的新位置去;

4xx:找不到资源; 404

  • 资源不存在

5xx:服务器代码错误; 500    502:网关错误

常见面试题:

问题:当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么?

  1. URL 解析和 DNS 查询
    1. 浏览器首先解析你输入的 URL。它会检查 URL 的格式(例如,是否包含协议如 http:// 或 https://),并提取域名(如 www.example.com)。
    2. 然后,浏览器进行 DNS(域名系统)查询,将域名转换为对应的 IP 地址(如 192.0.2.1)。
  2. 建立网络连接

    1. 浏览器使用获得的 IP 地址和端口(默认 HTTP 为 80,HTTPS 为 443)建立 TCP(传输控制协议)连接
    2. 如果使用 HTTPS(安全协议),在 TCP 连接后还会进行 TLS(传输层安全)握手:
      1. 浏览器和服务器协商加密协议(如 TLS 1.3)。
      2. 服务器发送数字证书,浏览器验证其合法性(例如,检查证书颁发机构)
      3. 双方生成共享密钥,用于加密后续通信
  3. 发送 HTTP 请求

    1. ​​​​​​​一旦连接建立,浏览器发送一个 HTTP 请求到服务器。请求包括:
      1. 方法(通常是 GET,用于获取页面)。
      2. 路径(如 /index.html)。
      3. HTTP 头部
      4. 如果是 HTTPS,请求会被加密
  4. 服务器处理和响应

    1. ​​​​​​​服务器(如 Apache 或 Nginx)接收请求后进行处理
    2. 服务器发送 HTTP 响应回浏览器
  5. 浏览器接收和解析响应

    1. ​​​​​​​​​​​​​​浏览器接收响应后,开始解析内容
  6. 页面渲染和显示
    1. ​​​​​​​​​​​​​​浏览器使用渲染树进行布局(Layout)和绘制(Painting)

        整个过程从输入到页面显示,涉及 DNS 查询网络连接建立HTTP 请求/响应内容解析和渲染。每一步都依赖底层协议(如 TCP/IP)和浏览器引擎(如 Chromium 的 Blink)。现代浏览器优化了这些步骤(如并行资源加载),以提升速度。如果输入的是无效 URL 或网络问题,浏览器会显示错误页面(如 ERR_CONNECTION_TIMED_OUT)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值