Web核心、HTTP

news/2025/2/26 18:15:24

JavaWeb技术栈

B/S 架构:Browser/Server,浏览器/服务器 架构模式,它的特点是,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web资源,服务器把Web资源发送给浏览器即可

     好处:易于维护升级:服务器端升级后,客户端无需任何部署就可以使用到新的版本

静态资源:HTML、CSS、JavaScript、图片等。负责页面展现

动态资源:Servlet、JSP 等。负责逻辑处理

数据库:负责存储数据

Web服务器:负责解析HTTP协议,解析请求数据,并发送响应数据

HTTP

概念:HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则
HTTP 协议特点:
  1.基于TCP协议:面向连接,安全
  2.基于请求-响应模型的:一次请求对应一次响应
  3.HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的
      缺点:多次请求间不能共享数据。Java中使用会话技术(Cookie、Session)来解决这个问题
      优点:速度快

请求数据格式

请求数据分为3部分:
  1.请求行:请求数据的第一行。其中GET表示请求方式,/表示请求资源路径,HTTP/1.1表示协议版本

  2.请求头:第二行开始,格式为key:value形式。
  3.请求体: POST请求的最后一部分,存放请求参数
常见的HTTP 请求头:
  Host: 表示请求的主机名
  User-Agent:浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0...

  Chrome/79,lE浏览器的标识类似Mozilla/5.0(Windows NT .) like Gecko;

  Accept:表示浏览器能接收的资源类型,如text/*,image/*或者*/*表示所有;

  Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页

  Accept-Encoding:表示浏览器可以支持的压缩类型,例如gzip,deflate等

GET请求和 POST请求区别:
1.GET请求请求参数在请求行中,没有请求体。POST请求请求参数在请求体中
2.GET请求请求参数大小有限制,POST没有

响应数据格式

响应数据分为3部分:
  1.响应行:响应数据的第一行。其中HTTP/1.1表示协议版1.本,200表示响应状态码,OK表示状态码描述

  2.响应头:第二行开始,格式为key:value形式

  3.响应体: 最后一部分。存放响应数据

常见的HTTP 响应头:
Content-Type:表示该响应内容的类型,例如text/htmlimage/jpeg;
Content-Length:表示该响应内容的长度(字节数);

Content-Encoding:表示该响应压缩算法,例如gzip;

Cache-Control:指示客户端应如何缓存,例如max-age=300表示可以最多缓存300秒

常见的响应状态码:

状态码英文描述解释
200OK客户端请求成功,即处理成功,这是我们最想看到的状态码
404Not Found请求资源不存在,一般是URL输入有误,或者网站资源被删除了
500Internal Server Error服务器发生不可预期的错误服务器出现异常了,赶紧看看日志去吧

http://www.niftyadmin.cn/n/5869047.html

相关文章

智慧物流小程序(论文源码调试讲解)

第4章 系统设计 一个成功设计的系统在内容上必定是丰富的,在系统外观或系统功能上必定是对用户友好的。所以为了提升系统的价值,吸引更多的访问者访问系统,以及让来访用户可以花费更多时间停留在系统上,则表明该系统设计得比较专…

2.部署kafka:9092

官方文档:http://kafka.apache.org/documentation.html (虽然kafka中集成了zookeeper,但还是建议使用独立的zk集群) Kafka3台集群搭建环境: 操作系统: centos7 防火墙:全关 3台zookeeper集群内的机器,1台logstash 软件版本: …

java后端开发day18--学生管理系统

(以下内容全部来自上述课程) 1.业务分析并搭建主菜单 1.需求 采取控制台的方式去书写学生管理系统 2.分析 1.初始菜单 2.学生类 属性:id,姓名,年龄,家庭住址 3.添加功能 键盘录入每一个学生信息并…

嵌入式开发:傅里叶变换(4):在 STM32上面实现FFT(基于STM32L071KZT6 HAL库+DSP库)

目录 步骤 1:准备工作 步骤 2:创建 Keil 项目,并配置工程 步骤 3:在MDK工程上添加 CMSIS-DSP 库 步骤 5:编写代码 步骤 6:配置时钟和优化 步骤 7:调试与验证 步骤 8:优化和调…

分享httprunner 结合django实现平台接口自动化方案

说明,可以直接在某个视图集定义自定义接口来验证。 调试1:前端界面直接编写yaml文件. 新增要实现存数据到mysql,同时存文件到testcase下, 如test.yaml 更新yaml数据,同时做到更新 testcase下的文件,如test.yaml acti…

React 源码揭秘 | 更新队列

前面几篇遇到updateQueue的时候,我们把它先简单的当成了一个队列处理,这篇我们来详细讨论一下这个更新队列。 有关updateQueue中的部分,可以见源码 UpdateQueue实现 Update对象 我们先来看一下UpdateQueue中的内容,Update对象&…

docker部署go简单web项目(无mysql等附加功能)

首先准备好go语言代码 代码表示当访问主机上8080端口下的/hello路径时,会返回hello,world。 package mainimport ("fmt""github.com/gin-gonic/gin" )type hh struct {S string }func main() {router : gin.Default()router.GET(&…

简单理解Oracle中的latch

可以用一个小卖部抢购的例子来理解 Oracle 数据库中的 Latch: 1、 什么是 Latch? 打个比方,假设数据库的某个内存区域(比如缓存的数据块)是小卖部货架上的最后一包辣条,Latch 就像是货架前的一个狭窄通道&a…