JavaWeb开发基础7个Web术语解析

7个Web术语

  1. Website: static vs dynamic

  2. HTTP

  3. HTTP Requests

  4. GET vs POST

  5. Servlet Container

  6. Server: Web vs Application

  7. Content Type

Website: static vs dynamic

网站内容包括文本、图片、音频、视频,通过URL来访问。网站分为静态网站和动态网站。

静态网站

静态网站是用HTML编写的,所有内容都包含在网页内,就像是打印出来的一样。

动态网站

动态网站分为客户端和服务端,内容是可以动态变化的,可以根据用户请求动态更新网页内容。服务端语言有Servlet、ASP.NET等。

HTTP

HTTP是Hypertext Transfer Protocol缩写,超文本传输协议,位于OSI网络分层模型的应用层(第七层)。

超文本(Hypertext)是一种文本形式,它不仅包含普通的文本内容,还包含了可以链接到其他文本或资源的元素。这些链接通常称为“超链接”(Hyperlinks)。超文本的概念由Ted Nelson在1960年代提出,并在万维网(World Wide Web)的发展中得到了广泛应用。

HTTP具有以下特点:

  • media independent:支持任何类型的媒体内容

  • connectionless:无连接,客户端发送请求后,就断开了连接

  • stateless:无状态,服务端不会保留客户端请求的状态,不知道谁是谁

HTTP是基于TCP/IP协议的,通过TCP建立可靠连接。为什么说HTTP是无连接的,但又是基于TCP可靠连接的?如果想要可靠地传输数据,那么就必须要有稳定可靠的连接,保证数据不丢失,这个连接就是TCP连接。HTTP正是通过TCP连接来发送和接收数据的。

在HTTP/1.0中,每次请求都会建立一个新的TCP连接,完成请求后立即关闭连接。在HTTP/1.1中,引入了持久连接,允许多个请求/响应在同一个TCP连接上进行,但每个请求/响应对话仍然是独立的。HTTP/1.1是持久连接,那么还能叫做无连接吗?是的,仍然是无连接。持久连接是通过 Connection: keep-alive 头部实现的,允许连接在一段时间内保持打开状态,不需要重新建立和关闭连接。无连接的本质是每个请求/响应对话都是独立的,强调的是独立。

HTTP Requests

HTTP请求是客户端发送给服务端的请求,包含以下内容:

  • The Request-line(请求行)
  • The analysis of source IP address, proxy and port(源信息)
  • The analysis of destination IP address, protocol, port and host(目标信息)
  • The Requested URI (Uniform Resource Identifier)(链接)
  • The Request method and Content(方法和内容)
  • The User-Agent header(请求头)
  • The Connection control header(请求头)
  • The Cache control header(请求头)

可以在浏览器中通过F12开发者工具,查看HTTP请求信息。

GET vs POST

GET和POST是HTTP请求的2个主要方法,它们的区别如下:

  1. 数据传输方式
  • GET:将请求参数附加在URL的查询字符串中,数据通过URL传输。例如:http://example.com/page?param1=value1&param2=value2
  • POST:将请求参数包含在请求体中,数据通过请求体传输,不会显示在URL中
  1. 安全性
  • GET:由于参数显示在URL中,敏感信息容易被暴露在浏览器历史记录、日志文件等地方,因此不适合传输敏感数据
  • POST:参数在请求体中传输,相对来说更安全,但并不意味着完全安全,仍需使用 HTTPS 来加密数据
  1. 数据长度限制
  • GET:由于URL长度限制(通常为2048字符),GET请求传输的数据量有限
  • POST:没有明显的数据长度限制,可以传输大量数据
  1. 幂等性
  • GET:幂等的,即多次相同的GET请求应该产生相同的结果,不会对服务器资源产生副作用
  • POST:非幂等的,即多次相同的POST请求可能会产生不同的结果,通常用于提交数据或触发服务器上的操作
  1. 缓存
  • GET:可以被浏览器缓存,适合用于获取不变的数据
  • POST:默认情况下不会被缓存,适合用于提交数据或执行操作
  1. 用途
  • GET:主要用于请求数据,例如获取网页内容、查询信息等
  • POST:主要用于提交数据,例如提交表单、上传文件等

Servlet Container

Servlet容器(Servlet Container)是一个运行环境,用于管理和执行Java Servlet。它属于Java EE,负责处理客户端请求、管理Servlet生命周期以及提供各种服务(如安全性、并发性、资源管理等)。

Servlet容器是Web服务器(Web Server)的一部分,我们常说的Apache Tomcat,既是一个Web服务器(内置HTTP Server),也是一个Servlet容器。它能够处理静态内容和动态内容,提供了一个完整的运行环境来开发和部署Java Web应用。

Server: Web vs Application

Web服务器主要处理静态内容和HTTP请求,而应用服务器主要处理动态内容和业务逻辑。

传统的Web服务器:

  • Apache HTTP Server:一个开源的Web服务器,广泛用于托管静态网站和动态Web应用
  • Nginx:一个高性能的Web服务器,特别擅长处理大量并发连接,常用于反向代理和负载均衡

现代的Web服务器:

  • Node.js:一个基于Chrome V8引擎的JavaScript运行时环境,使用事件驱动、非阻塞I/O模型,使其非常适合构建高性能、可扩展的网络应用
  • Caddy:一个现代的Web服务器,默认支持HTTPS,配置简单,支持自动TLS证书管理

应用服务器:

  • Apache Tomcat:虽然主要是一个Servlet容器,但也可以作为一个轻量级的应用服务器
  • GlassFish:一个完整的Java EE应用服务器,支持所有Java EE规范
  • JBoss/WildFly:一个开源的Java EE应用服务器,提供全面的企业级功能
  • WebLogic:Oracle提供的企业级应用服务器,支持广泛的企业功能
  • WebSphere:IBM提供的企业级应用服务器,广泛用于大型企业应用

在实际应用中,Web服务器和应用服务器通常会一起使用,比如:

  • Nginx作为前端Web服务器,处理静态内容,将动态请求转发给后端的Tomcat应用服务器处理

  • Nginx作为反向代理,接收所有请求,并根据请求类型进行处理或转发,给后端的应用服务器Tomcat,同时可以实现负载均衡

Servlet容器既可以是Web服务器的一部分,例如,Apache Tomcat就是一个既包含Web服务器功能又包含Servlet容器功能的服务器。Tomcat能够处理静态内容(如HTML、CSS、JavaScript文件)和动态内容(如通过Servlet生成的内容)。

Servlet容器也可以是应用服务器的一部分,例如,在企业级应用服务器(如GlassFish、JBoss/WildFly)中,应用服务器不仅包含Servlet容器,还提供了许多其他企业级功能,如事务管理、消息队列、EJB(Enterprise JavaBeans)支持等。

+----------------------+       +----------------------+
| Web Server           |       | Application Server   |
|                      |       |                      |
| +------------------+ |       | +------------------+ |
| | Servlet Container| |       | | Servlet Container| |
| | (Tomcat)         | |       | | (GlassFish,      | |
| +------------------+ |       | |  JBoss/WildFly)  | |
|                      |       | +------------------+ |
+----------------------+       |                      || +------------------+ || | Other Enterprise | || | Features (EJB,   | || | Transactions,    | || | Messaging, etc.) | || +------------------+ |+----------------------+

Content Type

Content-Type是HTTP协议中的一个Header字段,用于指示发送给接收者的数据的媒体类型(MIME类型)。它告诉客户端或服务器如何解释和处理请求或响应中的数据。Content-Type在HTTP请求和响应中都可以使用。

常见Content-Type如下:

  1. 文本类型:

    • text/html:HTML文档
    • text/plain:纯文本
    • text/css:CSS样式表
    • text/javascript:JavaScript代码
  2. 应用类型:

    • application/json:JSON格式的数据
    • application/xml:XML格式的数据
    • application/x-www-form-urlencoded:表单数据,通常用于POST请求
    • application/octet-stream:二进制数据流,通常用于文件下载
  3. 多部分类型:

    • multipart/form-data:用于表单文件上传,表单数据可以包含文件
    • multipart/byteranges:表示响应包含多个部分,每个部分是一个字节范围
  4. 图像类型:

    • image/jpeg:JPEG图像
    • image/png:PNG图像
    • image/gif:GIF图像
  5. 音频和视频类型:

    • audio/mpeg:MPEG音频文件
    • video/mp4:MP4视频文件

参考资料:

https://www.javatpoint.com/web-terminology

ChatGPT

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

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

相关文章

HBuilder X 小白日记03-用css制作简单的交互动画

:hover选择器,用于选择鼠标指针浮动在上面的元素。 :hover选择器可用于所有元素,不只是链接 :link选择器 设置指向未被访问页面的链接的样式 :visited选择器 用于设置指向已被访问的页面的链接 :active选择器 用于活动链接

mp4视频太大怎么压缩不影响画质,mp4文件太大怎么变小且清晰度高

在数字化时代,我们常常面临视频文件过大的问题。尤其是mp4格式的视频,文件大小往往令人望而却步。那么,如何在不影响画质的前提下,有效地压缩mp4视频呢?本文将为您揭秘几种简单实用的压缩技巧。 在分享和存储视频时&am…

白嫖A100活动来啦,书生·浦语大模型全链路开源体系

扫码参加即可获得: 第一节 书生浦语大模型全链路开源体系 书生浦语大模型的开源历程。 从模型到应用的典型流程 书生浦语的开源体系,包含从数据、预训练、微调、部署、评测、应用等环节

C# Winform自制多轴力臂(简单易懂,方便扩展)

WinForms框架广泛应用于上位机开发领域,其中对力臂的精准控制是常见需求之一。本文深入探讨了如何创建自定义的多轴力臂图形控件,不仅涵盖了力臂图形控件的角度调节机制,还详细展示了如何实现力臂运动的生动动态效果,为开发者提供…

【web前端HTML+CSS+JS】--- JS学习笔记03

一、JS介绍 可以在前端页面上进行逻辑处理,来解决表单的验证等问题,提升效率,直接在前端提示问题,减少服务器压力 应用1:可以做静态验证和动态验证(进行异步请求) 应用2:可以解析后…

Java---包装类与泛型

1.包装类 1.1 包装类 在Java中,由于基本数据类型不是继承Object类,为了在泛型代码中可以支持基本数据类型,Java给每个基本数据类型各自提供了一个包装类。 如下图 除了char和int基本数据类型的包装类型有点特别,其他的都是首字…

30岁前懂3点助你成为不被吃的AI产品经理

前几天突然间想起一个程序员和产品经理之间经常会遇到的问题,我问程序员,你们怎么样怼产品经理提出的需求,他们回答我如下图: 可见日常工作中AI产品经理提需求给研发工程师时,貌似产生了产品经理“求”研发帮开发的现象…

linux指令练习

二、touch、vi练习: 1、在root家目录下创建目录A1和B1 2、进入B1下同时创建三个文件m1, m2 , n1,单独创建目录N1 3、进入到A1目录中分别创建一个文件t1,k2,同时创建目录F1,F2 4、删除B1下的所有1结尾的文件或者目录 5、删除A1目录…

动态粒子发射特效404网站HTML源码

源码介绍 动态粒子发射404网站HTML源码,粒子内容可以进行修改,默认是4,0数字还有一个页面不存在英文,可以自行修改,喜欢的朋友可以拿去使用,源码是html,记事本打开修改即可,鼠标双击…

【面试题】串联探针和旁挂探针有什么区别?

在网络安全领域中,串联探针和旁挂探针(通常也被称为旁路探针)是两种不同部署方式的监控设备,它们各自具有独特的特性和应用场景。以下是它们之间的主要区别: 部署方式 串联探针:串联探针一般通过网关或者…

设计资料:520-基于ZU15EG 适配AWR2243的雷达验证底板 高速信号处理板 AWR2243毫米波板

基于ZU15EG 适配AWR2243的雷达验证底板 一、板卡概述 本板卡系北京太速科技自主研发,基于MPSOC系列SOC XCZU15EG-FFVB1156架构,搭载两组64-bit DDR4,每组容量32Gb,最高可稳定运行在2400MT/s。另有1路10G SFP光纤接口、1路40G…

使用 Hugging Face 模型时遇到的问题

题意: I load a float32 Hugging Face model, cast it to float16, and save it. How can I load it as float16? 我加载了一个float32的Hugging Face模型,将其转换为float16,并保存了。我该如何以float16的形式加载它呢? 问题…

[C++]入门基础(1)

Hello大家好,今天通过本篇文章,我们来初步学习C,C可以说是对C语言的一个升级,我们会一步一步的由浅入深的学习C。 目录 1.第一个C程序 2.命名空间 2.1 命名空间出现的意义 2.2 namespace的定义 2.3 命名空间的使用 3.C输入…

【AutoencoderKL】基于stable-diffusion-v1.4的vae对图像重构

模型地址:https://huggingface.co/CompVis/stable-diffusion-v1-4/tree/main/vae 主要参考:Using-Stable-Diffusion-VAE-to-encode-satellite-images sd1.4 vae 下载到本地 from diffusers import AutoencoderKL from PIL import Image import torch import to…

太实用了吧?手把手教你华为eNSP模拟器桥接真实网络!

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 晚上好,我的网工朋友。 今天聊聊eNSP桥接正式网络,就是把eNSP桥接进真实的网络,利用我们的物理网卡通过实体路…

昇思25天学习打卡营第5天|MindSpore网络模型构建

打卡 目录 打卡 模型类 模型网络:定义与使用 模型层级分解 nn.Flatten 张量转换-演示查看 nn.Dense 全连接层-演示查看 nn.ReLU 非线性激活层-演示查看 nn.SequentialCell 有序网络容器 nn.Softmax 多分类概率预测 模型参数 前置感受:总的来说…

Xilinx FPGA:vivado关于IIC的一些零碎知识点

一、简介 IlC(inter-Integrated circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性…

如何安全隐藏IP地址,防止网络攻击?

当您想在互联网上保持隐私或匿名时,您应该做的第一件事就是隐藏您的 IP 地址。您的 IP 地址很容易被追踪到您,并被用来了解您的位置。下面的文章将教您如何隐藏自己,不让任何试图跟踪您的活动的人发现。 什么是 IP 地址? 首先&am…

cv2.GaussianBlur()--sigmaX

目录 1 函数原型 2 原理 2.1 一维高斯分布 2 .2 二维高斯分布 3 总结 1 函数原型 def GaussianBlur(src, ksize, sigmaX, dstNone, sigmaYNone, borderTypeNone): # real signature unknown; restored from __doc__"""GaussianBlur(src, ksize, sigmaX[, …

C++·栈和队列

栈和队列是什么看这里: 数据结构栈和队列-CSDN博客文章浏览阅读948次,点赞25次,收藏26次。本节讲解了栈和队列的内容,其核心就是栈的特点是后进先出,队列的特点是先进先出。并用C语言实现了栈和队列的结构以及它们的各…