【JavaWeb】Day24.Web入门——HTTP协议(一)

HTTP协议------概述

1.介绍

HTTP:Hyper Text Transfer Protocol(超文本传输协议),规定了浏览器与服务器之间数据传输的规则。

  • http是互联网上应用最为广泛的一种网络协议
  • http协议要求:浏览器在向服务器发送请求数据时,或是服务器在向浏览器发送响应数据时,都必须按照固定的格式进行数据传输

如果想知道http协议的数据传输格式有哪些,可以打开浏览器,点击`F12`打开开发者工具,点击`Network`来查看。

浏览器向服务器进行请求时: 服务器按照固定的格式进行解析

服务器向浏览器进行响应时:浏览器按照固定的格式进行解析

所以,学习HTTP主要就是学习请求和响应数据的具体格式内容。

2.特点

HTTP协议的特点:

  • **基于TCP协议:**TCP是一种面向连接的(建立连接之前是需要经过三次握手)、可靠的、基于字节流的传输层通信协议,在数据传输方面更安全

  • **基于请求-响应模型:**一次请求对应一次响应(先请求后响应),请求和响应是一一对应关系,没有请求,就没有响应

  • HTTP协议是无状态协议: 对于数据没有记忆能力。每次请求-响应都是独立的。无状态指的是客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息。缺点: 多次请求间不能共享数据;优点: 速度快

HTTP-请求协议

浏览器和服务器是按照HTTP协议进行数据通信的。

HTTP协议又分为:请求协议和响应协议

  • 请求协议:浏览器将数据以请求格式发送到服务器
  • 包括:**请求行**、**请求头** 、**请求体**
  • 响应协议:服务器将数据以响应格式返回给浏览器
  • 包括:**响应行** 、**响应头** 、**响应体**

在HTTP1.1版本中,浏览器访问服务器的两种方式:

1.GET方式的请求协议

* 请求行 :HTTP请求中的第一行数据。由:`请求方式`、`资源路径`、`协议/版本`组成(之间使用空格分隔)

* 请求方式:GET

* 资源路径:/brand/findAll?name=OPPO&status=1

* 请求路径:/brand/findAll

* 请求参数:name=OPPO&status=1

* 请求参数是以key=value形式出现

* 多个请求参数之间使用`&`连接

* 请求路径和请求参数之间使用`?`连接

* 协议/版本:HTTP/1.1

* 请求头 :第二行开始,上图黄色部分内容就是请求头。格式为key: value形式

常见的HTTP请求头有:

服务端可以根据请求头中的内容来获取客户端的相关信息,有了这些信息服务端就可以处理不同的业务需求。

比如:

不同浏览器解析HTML和CSS标签的结果会有不一致,所以就会导致相同的代码在不同的浏览器会出现不同的效果

服务端根据客户端请求头中的数据获取到客户端的浏览器类型,就可以根据不同的浏览器设置不同的代码来达到一致的效果(这就是我们常说的浏览器兼容问题)

请求体 :存储请求参数( GET请求的请求参数在请求行中,故不需要设置请求体)

2.POST方式的请求协议

  • 请求行(以上图中红色部分):包含请求方式、资源路径、协议/版本
  • 请求方式:POST

  • 资源路径:/brand

  • 协议/版本:HTTP/1.1

  • 请求头(以上图中黄色部分)
  • 请求体(以上图中绿色部分) :存储请求参数
  • 请求体和请求头之间是有一个空行隔开(作用:用于标记请求头结束)

1.请求方式GET: 请求参数在请求行中,没有请求,如:/brand/findAllname=OPPO&status=1。GET请求大小是有限制的。

2.请求方式-POST: 请求参数在请求体中,POST请求大小是没有限制的。

3.GET请求:安全性低。原因:请求参数暴露在浏览器地址栏中。

相关推荐
Cx330❀3 小时前
【Linux网络】网络层协议 IP :从网络层原理到 Linux 内核源码
linux·运维·服务器·网络·tcp/ip·ai·ai编程
FPC工厂——皇榜科技4 小时前
机器人灵巧手线路板:从“握得住”到“摸得准”:一只机械手的柔性神经密码
网络·人工智能·科技·机器人·pcb工艺
Orange_sparkle5 小时前
Pi Agent vs LangGraph:从人机交互、企业 RAG 到持久化工作流的完整选型指南
java·网络·人机交互
右耳朵猫AI5 小时前
Go周刊2026W36 | Go 1.27.1 发布、TinyGo 0.42、HTTP/2 原生迁入 net/http、quic-go 0.62
redis·http·golang
xiaoye-duck6 小时前
《Linux 网络编程》深入传输层 UDP 协议原理:端口、报文、缓冲区与内核源码解析
linux·网络·udp
好评1246 小时前
【Linux】数据链路层
linux·运维·网络
天衍四九-6 小时前
第一章:从 LLM 到 Agent —— DeepSeek Harness 入门
网络·数据库·人工智能·python
Jae den6 小时前
网络丢包是什么?
网络
XR1234567888 小时前
医院无线整网高密覆盖选型深度解析
运维·网络
发量惊人的中年网工8 小时前
企业一体化安全网关选型:适用规模、需求架构与实施建议
网络