HTTP协议详解

HTTP协议

HTTP协议概述

超文本传输协议,规定了浏览器和服务器之间数据传输的规则。

  • HTTP(Hyper Text Transfer Protocol): 全称超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

  • HTTP 是一种应用层协议,是基于 TCP/IP 通信协议来传递数据的,其中 HTTP1.0、HTTP1.1、HTTP2.0 均为 TCP 实现,HTTP3.0 基于 UDP 实现。现主流使用 HTTP1.0 和 HTTP3.0

  • 协议: 为了使数据在网络上从源头到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议,它最终体现为在网络上传输的数据包的格式。

当我们在浏览器输入一个网址,此时浏览器就会给对应的服务器发送一个 HTTP 请求,对应的服务器收到这个请求之后,经过计算处理,就会返回一个 HTTP 响应。并且当我们访问一个网站时,可能涉及不止一次的 HTTP 请求和响应的交互过程。

基础术语:

  • 客户端: 主动发起网络请求的一端

  • 服务器: 被动接收网络请求的一端

  • 请求: 客户端给服务器发送的数据

  • 响应: 服务器给客户端返回的数据

HTTP 协议的重要特点: 一发一收,一问一答}

image-20220303134211242

当我们访问一个网站时,可能涉及不止一次的 HTTP 请求和响应的交互,为此为了更加清楚的了解我们访问一个网站时 HTTP 请求/协议是怎么交互的,可以 通过 F12 打开浏览器的开发者工具,点击 Network 标签页,然后刷新页面就行。显示的每一条记录都是一次 HTTP 请求/响应
img

特点:

  1. 基于TCP协议:面向连接,安全
  2. 基于请求-相应模型:一次请求对应一次响应
  3. HTTP协议时无状态的协议:对于事务处理没有记忆能力,每次请求-响应都是独立的。
    1. 缺点:多次请求间不能共享数据
    2. 优点:速度快
    3. 解决方法:会话技术

请求协议(由浏览器发起)

HTTP请求格式

  1. 请求行
  2. 请求头
  3. 请求体
    在这里插入图片描述

请求行

包括

  1. 请求方式
  2. 资源路径
  3. 协议

请求头

格式:key:value

常见的请求头的含义:

在这里插入图片描述

请求体

存放请求参数的地方,但是不是所有的请求类型都有请求体:

请求方式-POST:有请求体

请求方式-GET:无请求体,请求参数放在请求行中,例如:

GET/brand/findAll?key1=value1&&key2=value2 HTTP/1.1

响应协议(由服务端发起)

HTTP响应格式

  1. 响应行
  2. 响应头
  3. 响应体

响应行

  1. 协议
  2. 状态码
  3. 描述

例如:HTTP/1.1 200 OK

状态码根据首位数字可以分为五类:

在这里插入图片描述

常见的响应状态码:

在这里插入图片描述

响应头

在这里插入图片描述

响应体

存放响应的数据

协议解析

  • 客户端浏览器解析响应(自动)

  • 服务端解析请求(使用WEB服务器,无需自己结合Servlet编程)

WEB服务器

是指运行在服务器上,用于处理和响应Web请求的软件或程序。它接收来自客户端(如浏览器)发送的HTTP请求,并返回相应的HTTP响应。WEB服务器负责处理静态文件、动态内容生成、请求路由、安全性等任务。

以下是一些常见的WEB服务器和相关工具:

  1. Apache HTTP Server: Apache是一个开源的、跨平台的WEB服务器软件,广泛用于互联网和企业环境。
  2. Nginx: Nginx是一个高性能的WEB服务器和反向代理服务器,可处理大量并发连接。
  3. Microsoft Internet Information Services (IIS): IIS是由Microsoft开发的WEB服务器,用于Windows操作系统。
  4. Node.js: Node.js是基于Chrome V8引擎的JavaScript运行时环境,可用于构建高度可扩展的WEB服务器。
  5. Tomcat: Apache Tomcat是一个用于Java Servlet和JavaServer Pages(JSP)的开源WEB服务器和Servlet容器。
  6. Jetty: Jetty是一个轻量级的Java WEB服务器和Servlet容器,适用于嵌入式系统和开发环境。
  7. Lighttpd: Lighttpd是一个快速、安全、灵活的WEB服务器,特别适用于高性能的Web应用程序。

Tomcat是一个使用Java编写的开源WEB服务器和Servlet容器。它的原理是通过实现Java Servlet规范和JavaServer Pages(JSP)规范,为Java Web应用程序提供服务。

TOMCAT

Tomcat的工作原理如下:

  1. 客户端发送请求:当客户端(如浏览器)发送HTTP请求时,请求会被发送到Tomcat服务器。
  2. 请求路由:Tomcat服务器接收到请求后,根据请求的URL将其路由到相应的Servlet或JSP页面。
  3. Servlet处理:对于Servlet请求,Tomcat会调用相应的Servlet进行处理。Servlet是Java编写的服务器端组件,用于处理请求并生成响应。Servlet可以通过Tomcat提供的Servlet API来访问请求参数、处理业务逻辑,并生成HTTP响应。
  4. JSP编译与执行:对于JSP请求,Tomcat会将JSP文件编译成Java Servlet,然后再执行编译后的Servlet。JSP文件包含Java代码和HTML标记,编译后的Servlet会生成相应的HTML内容。
  5. HTTP响应返回:Servlet或JSP处理完成后,Tomcat会将生成的HTTP响应返回给客户端。

与Java的结合:
Tomcat和Java紧密结合,它内置了Java Servlet规范和JSP规范的实现。Java Web应用程序开发者可以使用Java编写Servlet和JSP页面,并将它们部署到Tomcat服务器中。

在Java Web应用程序中,开发者可以使用Tomcat提供的Servlet API来处理请求和生成响应。Servlet API包含了一组类和接口,用于处理HTTP请求、访问请求参数、管理会话、操作Cookie等。

编写Servlet和JSP页面,并将它们部署到Tomcat服务器中。

在Java Web应用程序中,开发者可以使用Tomcat提供的Servlet API来处理请求和生成响应。Servlet API包含了一组类和接口,用于处理HTTP请求、访问请求参数、管理会话、操作Cookie等。

通过将Java Web应用程序部署到Tomcat服务器,Tomcat会负责接收和处理来自客户端的请求,调用相应的Servlet或JSP页面进行处理,并将生成的响应返回给客户端。这种结合使得开发者能够使用Java编写强大的服务器端逻辑,处理动态内容生成和业务逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值