【Servlet】1:踏入JavaWeb的第一把钥匙

news2025/1/22 22:06:52

目录

第一章 | JavaWeb序章

| 章节概述

| JavaWeb项目运行流程

| 静态与动态资源

| Javaweb开发人员的三个任务

第二章 | HTTP网络协议

| 章节概述

| HTTP简介

| HTTP请求三要素

| HTTP请求包、响应包

| HTTP状态码

| HTTPS vs HTTP


本文章属于后端全套笔记的第三部分。

(更新中)【后端入门到入土!】Java+Servlet+JDBC+SSM+SpringBoot+SpringCloud 基础入门_Graskli的博客-CSDN博客一篇文章,后端入门到入土。包含 Java基础+高级、MySQL、JDBC、Servlet、SSM、SpringBoot、SpringCloud、项目 的笔记。https://blog.csdn.net/m0_57265007/article/details/127962617?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22127962617%22%2C%22source%22%3A%22m0_57265007%22%7D

第一章 | JavaWeb序章

| 章节概述

学习 Servlet 前,您需要有下列知识储备:Java基础语法

本章将学习

  • 对Javaweb项目的执行流程有一个全局的认知,知道今后学习的知识都对应整个流程中的哪一个部分

  • 对Javaweb开发人员需要进行的任务有一个提前认知,知道作为一个Java后端开发人员的职责所在

  • 掌握静态资源和动态资源相关知识点


| JavaWeb项目运行流程

 

| 静态与动态资源

1.静态资源和动态资源的概念

  • 静态资源:一般客户端发送请求到web服务器,web服务器从内存在取到相应的文件,返回给客户端,客户端解析并渲染显示出来。

  • 动态资源:一般客户端请求的动态资源,先将请求交于web容器,web容器连接数据库,数据库处理数据之后,将内容交给web服务器,web服务器返回给客户端解析渲染处理。

2.静态资源和动态资源的区别

  • 静态资源一般都是设计好的html页面,而动态资源依靠设计好的程序来实现按照需求的动态响应;

  • 静态资源的交互性差,动态资源可以根据需求自由实现;

  • 在服务器的运行状态不同,静态资源不需要与数据库参于程序处理,动态可能需要多个数据库的参与运算。


| Javaweb开发人员的三个任务

  • 控制浏览器的请求方式(前端人员)

  • 编写响应的Servlet、连接数据库CURD处理请求(后端人员)

  • 控制浏览器接受请求的行为,即响应对象(后端人员)


第二章 | HTTP网络协议

| 章节概述

本章将学习

  • 初步认识HTTP及其特点

  • 掌握HTTP请求的三要素、请求包、响应包、状态码等知识

  • 掌握HTTPS和HTTP的异同点


| HTTP简介

Http是什么?

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。

我们在浏览器的地址栏里输入的网站地址叫做URL (Uniform Resource Locator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。

Http协议由Http请求和Http响应组成,当在浏览器中输入网址访问某个网站时, 你的浏览器会将你的请求封装成一个Http请求发送给服务器站点,服务器接收到请 求后会组织响应数据封装成一个Http响应返回给浏览器。即没有请求就没有响应。

Http的特点

  • 基于请求/响应模型的协议。请求和响应必须成对,先有请求后有响应

  • http协议默认端口:80

  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

  • 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

  • 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

  • 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。


| HTTP请求三要素

请求地址:

  • 使用 a 标签进行控制

  • 当查询字符串中包含特殊字符,就需要对特殊字符进行转义,这个转义的过程就叫encode,反之就是decode

  • URL的结构如下

求参数:

前端人员通过操作dom对象获取用户输入的value,然后进行ajax请求,把数据发送给后端

请求方式:

  • 浏览器可以选择的请求方式有7中,如下图。在此只介绍一下最常用的【POST请求方式】和【GET请求方式】

  • GET请求方式:4k大小,显示信息,协议包,缓存

    1)要求浏览器发送请求的时候,携带的【请求参数数量】不能超过4k,否则截取发送

    2)要求浏览器发送请求的时候,必须在浏览器地址栏显示【请求参数信息】

    3)要求浏览器发送请求的时候,必须将请求参数信息保存在Http请求协议包中【请求体】

    4)要求浏览器在接收到服务器返回的资源文件内容后,必须将资源文件保存在浏览器的缓存中

  • POST请求方式:不限大小,隐藏信息,协议包,不缓存

    1)携带的【请求参数数量】可以不限大小

    2)必须在浏览器地址隐藏【请求参数信息】(如:输入的账号和密码作为参数 需隐藏)

    3)必须将参数信息保存在Http请求协议包中【请求体】

    4)禁止浏览器将服务器返回的资源文件内容进行保存(防止实时信息失真)

  • 辨析

    • GET和POST本质上是没有区别的!

    • GET通常用来获取数据,POST用来上传数据。因此绝大多数网站拒绝接收POST的请求,日常开发中大多使用GET请求

    • 通常情况下,GET是没有body的,它通过query string向服务器传递数据

    • GET可以被缓存,POST不能被缓存

    • 必须使用POST请求的场景

      • 文件上传 必须使用POST

      • 发起登陆验证请求,必须使用POST

      • 索要服务器中的实时变化数据时(股票价格、车票数量)时必须使用POST


| HTTP请求包、响应包

Http协议包,是Http协议的一个具象实现方式

HTTP协议包的作用

  • 在网络中传递信息都是以【二进制】形式存在的。

  • 接收方【浏览器/服务器】在接收信息后,要做第一件事就是将【二进制数据】进行编译【文字,图片,视频,命令】

  • 传递信息数据量往往比较巨大,导致接收方很难在一组连续二进制得到对应数据

    比如 浏览器发送一个请求: http://192.168.100.2:8080/index.html

    这个请求信息以二进制形式发送 01010101010110101010101101010

    Http服务器很难从二进制数据得到相关信息

  • 网络协议包一组有规律二进制数据,在这组数据存在了固定空间,网络协议包出现极大降低了接收方对接收二进制数据编译难度

    如:【0000(ip地址)0000(端口号)0000(资源文件名)0000】

HTTP请求协议包

  • 在浏览器准备发送请求时,负责创建一个Http请求协议包浏览器将请求信息以二进制形式保存在Http请求协议包各个空间,由浏览器负责将Http请求协议包推送到指定服务端计算机

  • 构成:请求行、请求头、空白行、请求体

    • 请求行:存放HTTP协议的版本、请求方式、请求地址

    • 请求头:存放GET请求的参数信息,是一组键值对;还可能存放了Cookie;除此之外,还存放了各种客户端的环境信息

    • 空白行:分割作用

    • 请求体:存放POST请求的参数信息(但是浏览器中是看不到的,有效保证了保密性)例:userName=123&password=123&returnUrl=/

HTTP请求响应包

  • Http服务器在定位到被访问的资源文件之后。负责创建一个Http响应协议包Http服务器将定位文件内容或则文件命令以二进制形式写入到Http响应协议包各个空间,由Http服务器负责将Http响应协议包推送回发起请求的浏览器上。

  • 构成:状态行、响应头、空白行、响应体

    • 状态行:存放HTTP协议的版本、状态码、状态描述(通过一个或是一组简短的单词描述了当前状态码的含义)

    • 响应头:指定浏览器采用哪个视频、图片、文本编译器;对响应体二进制数据进行解析Cookie等等(即服务器端的信息

    • 空白行:分割作用

    • 响应体:存放静态资源文件、静态资源文件命令、被访问动态资源文件运行结果(都是二进制形式),存放显示在浏览器的内容(与响应头配合,显示出来)


| HTTP状态码

由3位数字组成,第一个数字定义了响应的类别

| HTTPS vs HTTP

HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

  • HTTPS即在HTTP的基础上加了一个加密协议,保障数据安全。

  • HTTPS 默认工作在 TCP 协议443端口,它的工作流程一般如以下方式:

    • 1、TCP 三次同步握手

    • 2、客户端验证服务器数字证书

    • 3、DH 算法协商对称加密算法的密钥、hash 算法的密钥

    • 4、SSL 安全加密隧道协商完成

    • 5、网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。

  • HTTP 与 HTTPS 区别

    • HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。

    • 使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。

    • HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。

    • http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。

    • HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/26053.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jenkins 如何 使用企业权限 登录

实现方式 基于Jenkins的 “CAS Plugin” 和 “Role-based Authorization Strategy”插件实现 CAS Plugin: 该插件支持使用CAS作为身份验证源,以支持单点登录(SSO)。一般的,企业都会有 这么一个服务,提供企业 统一身份管理,比如 百…

【GlobalMapper精品教程】026:影像黑边白边出现的原因及解决办法汇总

本文讲解Globalmapper中,影像黑边白边出现的原因及解决办法汇总。 文章目录 1. 影像黑边白边出现的原因2. 影像黑边白边的解决方法1. 影像黑边白边出现的原因 通常,由于影像格式、像素深度、无效值、背景值等原因,会产生黑边或者白边,给影像的拼接或者裁剪带来困扰。 2. …

基于ERP集成的流程制造管理系统

ERP的含义是企业资源计划,含义是对企业所拥有各种资源进行综合规划和优化管理,用以降低成本,提高效率,增加利润。ERP最初是在90年代初提出的,那时的ERP概念,还只是根据计算机技术的发展和供需链管理,推论各…

什么是GEMM?该怎么去学习GEMM?

什么是GEMM? 它的英文全称是 GEneral Matrix to Matrix Multiplication (通用矩阵的矩阵乘法),Gemm在神经网络的计算中占据很重要的位置。 它代表全局矩阵到矩阵的乘法,它本质上完全按照它在tins上所说的那样,将两个输入矩阵乘法在…

批量替换网站程序中的gotoip域名

网站访问出现验证页面,这是因为网站调用了二级域名,西部数码二级域名用于测试访问效果,不能用于正式访问,但是有些用户网站调试安装时使用了二级域名,内部链接没有修改,所以访问调用出现了验证页面。 这时要检查网站后…

DBCO(二苯并环辛炔)DBCO-PEG16-Benzylamine特点分享

【产品描述】 DBCO-PEG16-Benzylamine固体状,长链小分子PEG点击试剂,DBCO(二苯并环辛炔)是一种环炔烃,可以通过在水溶液中通过应变促进的1,3-偶极环加成反应与叠氮化物反应,这种生物正交反应也称为无铜点击…

前端、vue、Vue3弹幕实现;前端CSS实现弹幕

前端基于CSS3实现弹幕 基于CSS3动画 根据 Google Developer,渲染线程分为 主线程 (main thread) 和 合成线程 (compositor thread)。如果 CSS 动画只是改变 transforms 和 opacity,这时整个 CSS 动画得以在 合成线程 完成(而JS动画则会在 主…

PTA题目 最佳情侣身高差

专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)1.09 (男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。 下面就请你写个…

HTTP Only限制XSS盗取cookie

今天继续给大家介绍渗透测试相关知识,本文主要内容是HTTP Only限制XSS盗取cookie。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对…

使用 Helm Cli 将 chart 推送到 Harbor

使用 Helm Cli 将 chart 推送到 Harbor 背景问题 努力寻找适用于特定版本的 Harbor 和 Helm 的文档。 我尝试添加我的仓库(repo) helm repo add harbor https://myharbor.mydomain.com/chartrepo/myproject --username myusername --password mypass…

NXP iMX8M Plus M7核心FreeRTOS开发

By Toradex胡珊逢 Toradex 的 Verdin iMX8M Plus 计算机模块采用 NXP 的 iMX8M Plus 处理器。该 CPU 除了有支持 AI 硬件加速单元的 NPU 外,还配置了一个 M7 微控制器。相比于 iMX 8 QuadMax 处理器上时钟频率为 266MHz 的M4 微控制器, 该M7 的时钟频率…

Java基础39 Object类(节选)

ObjectObject类一、 equals( )● 与 equals的对比(☆)二、hashCode( )三、toString( )四、finalize( )Object类 Object类:Java中lang包的类,是类层次结构的根类,每个类都使用Object作为超类。所有对象(包…

【2015NOIP普及组】T3:求和 试题解析

【15NOIP普及组】求和 时间限制: 1000 ms 内存限制: 131072 KB 【题目描述】 一条狭长的纸带被均匀划分出了n个格子,格子编号从1到n。每个格子上都染了一种颜色colori用[1,m]当中的一个整数表示),并且写了一个数字numberi。 定义一种特殊的三元组:(x,y,z),其中x,…

Java架构该如何进阶?还在东拼西凑的学习?这份进阶指南相信会对你有所帮助,十多位资深大佬独家秘籍一并传授!

如何成为一名架构师? 笔者认为,想成为一名架构师,首先第一点必然是你的技术足够优秀,知识的深度和广度足够,遇到问题能很快从脑海中寻找出最合适的解决之道。其次,架构师会从整体上领导项目,与人打交道必不可少,因此…

区块链baas平台告警方案

前言 在《24*7动态化监管为“链”站岗》中,我们介绍了区块链动态化监控中心,如果说监控的作用是防患于未然,那么告警则是当异常发生时第一时间触发运维人员的关键,可充分降低监控对象异常的时间,最大化降低因异常给区…

深度解析KubeEdge EdgeMesh 高可用架构

摘要:通过高可用特性应用场景、高可用特性使用手册、课题总结、未来展望等四个部分的内容来向大家介绍新版本EdgeMesh的高可用架构。本文分享自华为云社区《KubeEdge EdgeMesh 高可用架构详解|KubeEdge云原生边缘计算社区》,作者:南开大学&am…

【计算机视觉OpenCV基础】实验二 基元检测

实验二 基元检测 计算机视觉OpenCV基础实验合辑(实验1234扩展) 资源下载地址: https://download.csdn.net/download/weixin_53403301 合辑:(加在下载地址后面) /87113581 讲义(包括理论、图例、…

[附源码]SSM计算机毕业设计火车售票系统论文JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

antd table 表格滚动高度适配

文章の目录问题产生背景如何解决写在最后问题产生背景 在开发一个后台管理系统,某一页面用到了table表格,产品的需求是: table表格无论展示多少条数据,表头和分页信息要展示出来 此时我们一定首先想到了table表格的 scroll 属性…

【设计模式】原型模式

原型模式属于创建型模式,主要作用是利用一个原型对象的克隆方法,在保证性能的情况下创建多个重复的对象,本质就是通过克隆一个原有的对象来复制出一个新对象。 文章目录原型模式的介绍使用场景原型模式的实现类图实现方法第一步,编…