【Servlet】HTTP协议的简单理解

HTTP协议及Servlet详解 HTTP(HyperText Transfer Protocol),超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个基于请求与响应模式的、无状态的、应用层的协议,运行于TCP协议基础之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。在Servlet体系结构中,除了第三节中讲的实现Servlet接口,还可以通过继承GenericServlet或HttpServlet类,完成自定义Servlet的编写。 阅读详情

HTTP协议就是规定:我和你说话的语言只能为标准的普通话,不能为其他语言(方言也不行)。

Table of Contents

HTTP请求

请求行

请求方式

请求资源

协议版本

请求头

HTTP响应

响应行

响应头


定义HTTP协议:规定浏览器与服务器之间通信的数据格式进行规定!

使用Chrome查看浏览器和服务器之间的request和response信息

  • 打开一个网页
  • 按下F12
  • 刷新以下网页
  • 点击F12后弹出界面的Network菜单
  • 点击XHR
  • 在“name”选项里选中一个;

HTTP请求

功能:规范浏览器到服务器之间的数据传输格式。

HTTP请求格式

请求行

请求方式

功能:把客户端的数据传输给服务器。

常见的请求方式: GET 、 POST、 HEAD、 TRACE、 PUT、 CONNECT 、DELETE

GET方式提交

特征:地址栏(URI)会跟上参数数据。以?开头,多个参数之间以&分割。

提交举例:

GET /KrojectDynamicWeb/testMethod.html?name=eric&password=123456 HTTP/1.1

Host: localhost:8080

...

提交特性:

  1. GET提交参数数据大小有限制,不超过1KB。
  2. GET方式不适合提交敏感密码。
  3. 注意:浏览器直接访问的请求,默认提交方式是GET方式

POST方式提交

特征:参数不会跟着URI后面。参数而是跟在请求的实体内容中。没有?开头,多个参数之间以&分割。

提交举例:

POST /KrojectDynamicWeb/testMethod.html HTTP/1.1

....

    (空行)

name=eric&password=123456  (实体内容)

提交特性:

  1. POST提交的参数数据大小没有限制。
  2. POST方式提交敏感数据。

请求资源

请求资源使用一个URL描述。

URL的理解:

  1. URL:统一资源定位符。
  2. 定位互联网资源。例如http://localhost:8080/KrojectDynamicWeb/testImg.html。
  3. 是URI的子集。

URI的理解:

  1. URI,统一资源标记符。
  2. 用于标记任何资源。可以是本地文件系统,局域网的资源,可以是互联网。

协议版本

http1.0:当前浏览器客户端与服务器端建立连接之后,只能发送一次请求,一次请求之后连接关闭。

http1.1:当前浏览器客户端与服务器端建立连接之后,可以在一次连接中发送多次请求。(基本都使用1.1)

请求头

特征:以键值对的形式出现。

 

浏览器相关

  • Accept: text/html,image/*  浏览器接受的数据类型
  • Accept-Charset: ISO-8859-1   浏览器接受的编码格式
  • Accept-Encoding: gzip,compress  浏览器接受的数据压缩格式
  • Accept-Language: en-us,zh-  浏览器接受的语言
  • User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)   浏览器类型
  • Connection: close/Keep-Alive   浏览器跟服务器连接状态。close: 连接关闭  keep-alive:保持连接。
  • Date: Tue, 11 Jul 2000 18:23:51 GMT   请求发出的时间

目标服务器相关:

  • Host: www.test.org:80      (必须的)当前请求访问的目标地址(主机:端口)
  • If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT  浏览器最后的缓存时间
  • Referer: http://www.it315.org/index.jsp      当前请求来自于哪里

会话相关:

  • Cookie:name=eric  浏览器保存的cookie信息

实体内容:

  • 只有POST提交的参数会放到实体内容中

HTTP响应

功能:规范服务器到浏览器之间的数据传输格式。

HTTP响应格式:

响应行

响应行格式:HTTP协议 状态码 状态说明

功能:服务器处理请求(Request)的结果(状态)

状态码核心:

  1. 1**:请求收到,继续处理
  2. 2**:操作成功收到,分析、接受
  3. 3**:完成此请求必须进一步处理
  4. 4**:请求包含一个错误语法或不能完成
  5. 5**:服务器执行一个完全有效请求失败,服务器内部出错

常用状态码:

  1. 2系列
    1. 200:请求成功
  2. 3系列
    1. 302:请求重定向
    2. 304:请求资源没有改变,访问本地缓存
  3. 4系列
    1. 404:请求的资源不存在
  4. 5系列
    1. 服务器内存出错

响应头

服务器自身相关:

  • Server:apache tomcat    表示服务器的类型
  • Content-Language: zh-cn    表示服务器支持的语言
  • Content-Type: text/html; charset=GB2312   表示服务器发送给浏览器什么类型的数据,以及该数据的编码方式
  • Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT  表示服务器资源的最后修改时间

将要给浏览器:

  • Content-Encoding: gzip   表示服务器发送给浏览器的数据压缩类型
  • Content-Length: 80    表示服务器发送给浏览器的数据长度
  • Content-Disposition: attachment; filename=aaa.zip   表示告诉浏览器以下载方式打开资源(下载文件时用到)
  • Location: http://www.it315.org/index.jsp   表示重定向的地址,该头和302的状态码一起使用。
  • Refresh: 1;url=http://www.it315.org    表示定时刷新

会话相关:

  • Connection: close/Keep-Alive        --表示服务器和浏览器的连接状态。close:关闭连接 keep-alive:保存连接
  • Set-Cookie:SS=Q0=5Lb_nQ; path=/search   --表示服务器发送给浏览器的cookie信息(会话管理用到)

响应体:

就是指具体的HTML文件或者其他(例如下载文件时的zip,图像文件的png等)


总结:

  • 牢牢把握住HTTP请求中的三大组成部分:请求行 + 请求头 + 请求实体
  • 牢牢把握住HTTP响应中的三大组成部分:响应行 + 响应体 + 响应实体
  • 就能在表层入门了HTTP协议,将其分类后,更有助于在后续学习相关API时的分门别类,心中有数,清晰明了。

IC架构与验证学习路线:从数字电路基础到验证平台搭建实战 数字芯片设计的基础概念是数字电路与计算机体系结构,两者决定了芯片架构设计与验证的深度与广度。架构负责定义指令集、互联与存储层次,验证则通过搭建可复用的验证平台确保RTL逻辑的正确性。随着芯片规模扩大,验证平台搭建能力成为岗位核心要求,企业更看重从零构建UVC等可复用组件的方法论。与此同时,指令集架构与分布式架构的演进推动着AI芯片设计,Transformer硬件加速与CNN逻辑架构的新需求不断涌现。本文从工程实践视角梳理架构与验证的期刊资源、学习节奏与常见踩坑点,帮助初学者建立从基础原理到验证平台落地的完整 阅读详情

相关推荐

深入理解HTTP协议与Servlet会话管理

本文深入探讨了HTTP协议的基本概念以及Servlet会话管理的重要性。通过分析HTTP协议的工作机制,包括其请求/响应模型和如何使用HTTPServlet进行Web通信,我们了解了HTTP的无状态特性。文章还详细介绍了多种会话跟踪技术,如URL重写、隐藏表单字段、Cookies和HTTPSession接口,并通过实例展示了它们的实际应用。

weixin_31591833的博客 406

Servlet&HTTP协议

今日内容:1. Servlet 2. HTTP协议 3. Request(Servlet的service方法的参数) 一、Servlet: 1. 概念 2. 步骤 3. 执行原理 4. 生命周期 5. Servlet3.0 注解配置 6. Servlet的体系结构 Servlet -- 接口 | GenericServlet -- 抽象类 | HttpServlet -...

Brienz 376

EM4095低频RFID曼彻斯特解码实战:从原理图到MCU代码实现

本文详细介绍了EM4095低频RFID读卡器的设计与实现,从芯片工作原理、天线设计到曼彻斯特解码算法。重点讲解了基于STM32的MCU代码实现,包括定时器捕获、数字滤波和错误处理,为开发125kHz RFID系统提供实用指南。

oil88的博客 713

tomcat与http协议,servlet整合

立个flag,之后都用markdown写了!第一次不会用,写的太难看,但是上一篇写的那叫一个美。 回到主题,写博客是为了复习,这几天简单的对web部分学习了一下。整理了一些,先把这些已经整理的发出来吧。 1. Tomcat      依旧老规矩 Xmind :      作为一个服务器,tomcat主要学习的是使用,而使用间就需要包含与其进行交互的工程项目。

西伯利亚的雪景的博客 2217

星光、黑光、全彩夜视摄像头技术解析与实战选型指南

本文深入解析了星光、黑光、全彩与红外等主流夜视摄像头技术的工作原理与核心差异。针对不同监控场景与预算,提供了实战选型指南,帮助用户在安防项目中做出明智决策,实现夜间监控效果最大化。

weixin_29179311的博客 345

别再手动抄表了!用MCGS触摸屏自动存数据到U盘,5分钟搞定报表导出

本文详细介绍了如何利用MCGS触摸屏实现工业数据自动记录与U盘导出,彻底告别传统手动抄表方式。通过昆仑通态MCGS系统,可构建零误差自动化报表系统,实现实时数据采集、双重备份及标准CSV格式导出,大幅提升数据准确性和工作效率。

weixin_30872157的博客 792

Servlet HTTP协议 Request

Servlet: 1. 概念 2. 步骤 3. 执行原理 4. 生命周期 5. Servlet3.0 注解配置 6. Servlet的体系结构 Servlet -- 接口 | GenericServlet -- 抽象类 | HttpServlet -- 抽象类 * GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象...

攻城狮 298

麒麟系统grub被锁怎么办?双密码遗忘救援指南(实测V10 SP3版本)

本文详细介绍了麒麟系统V10 SP3版本在GRUB和root密码双遗忘情况下的救援指南。通过ISO镜像进入救援模式,结合单用户模式操作,实现密码重置与系统权限恢复,特别适用于等保合规环境。

384

Servlet和http协议介绍

Servlet概念 servlet是一个运行在服务端的小程序 servlet就是一个接口,定义了浏览器访问到java类的规则 我们自己定义一个类,实现servlet接口,复写方法,做好相关的配置就可以实现浏览器访问自己的java类(浏览器动态获取资源) Servlet实现步骤 创建javaEE项目,配置好tomcat 定义一个类实现servlet接口,复写方法 在项目的web.xml中配置 ...

qq_35426012的博客 569

在 CentOS Stream 10 上搭建 Kubernetes 集群并支持开发调试与日志查看

搭建 Kubernetes 集群的每个步骤详细的文档。

灵犀物润 1638

STM32单片机入门学习(六)-光敏传感器控制LED

光敏传感模块一DO端接B13,GND接GND,VCC接VCC,AO不接。LED负极接B12,正极接VCC。

指尖魔法师 4368

Servlet技术的自我理解之二:HTTP协议的深入理解

理解HTTP的请求响应协议过程,对于理解Servlet技术有很大的帮助,个人赶脚~~ WEB服务器端与客户端的通信依赖于HTTP协议,客户端发送一个HTTP请求,服务器端就会用一个HTTP响应做出应答~~ 这么干巴巴的说比较让人费解,缺少画面感,对非计算机专业出身的我更是不通透,所以,上一个强大的HttpWatch软件,帮助我理解~~ 目前该软件支持IE,你让我再去下个火狐浏览器,不要吧,我

chenshuo8725的专栏 1202

YOLOv12改进专栏目录 | 本专栏持续更新500+篇内容 | 包含各种卷积、主干网络、各种注意力机制、检测头、损失函数、小目标检测改进、二次创新模块、独家创新等几百种创新点改进

《YOLOv12高效涨点改进专栏》提供500+创新改进方案,涵盖卷积、主干网络、注意力机制等模块优化,适用于检测、分割等任务。改进点来自顶会论文和个人经验,支持多种模型版本和任务场景。专栏包含详细教程、数据集增强、性能评估工具等,帮助科研人员快速实现模型优化和论文发表。提供完整运行项目和环境配置指导,适合计算机及相关专业研究人员使用,持续更新保障长期科研需求。

Ai缝合怪、助力小伙伴高效发论文 2300

Servlet技术的自我理解之一:WEB技术与HTTP协议

Servlet是一种独立于平台和协议的服务器端Java应用程序,用于生成动态WEB页面,可以这么理解,它是动态WEB技术+B/S开发模式联姻的产物,继承并发扬了两者的优点 不多说,下面就这两项技术做个分类,要理清,然后,你就通透了 网络技术发展到现在,讲的通透的书已经很多很多了,我只是按自己的理解,将它们整合下,留作笔记。。。 1、常见的网络技术开发模式主要分为:C/S(Client/S

chenshuo8725的专栏 980

【fpdlink显示】DS90UB948关于941连接948 GPIO调试问题

1. 前言 使用一个941连接2 948显示: 941的GPIO0/1/2/3到前948的GPIO0/1/2/3和941的D_GPIO0/1/2/3到948的GPIO0/1/2/3。 设置gpio3输出,则941的D_GPIO3设置高,而948的gpio3设置不高; 但设置gpio3输入后,看到941的D_GPIO3跟随948的gpio3变化。 2. 原理图连接 3. 测试代码 static int du90ub941_enable_port(struct goodix_ts_d

jzwjzw19900922的博客 2555

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【JavaWeb】Http协议及Servlet快速入门

HTTP 协议:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网 络协议。

少年你真的要止步于此嘛。 634

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【Servlet】Servlet学习之基础篇(HTTP)

【Servlet】Servlet学习之基础篇(HTTP)

m0_52410356的博客 746

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SIP Servlet 概述及范例

SIP Servlets规范(JSR116, Java Community Process), 提供了一系列的Java API和一个基于容器(Container)/应用服务器(Application Server)的开发模型, 用于提高服务器端SIP应用的开发效率.  SIP Servlets同样基于Java Servlet架构, 其API归属于javax.servlet.sip包, 和j

Zhiyu's Blog 1万+

Servlet初学笔记

虽然现在在公司里大多不会使用servlet,但是这是学习java过程的一个过渡,以后学习到框架的时候,有些地方还是需要理解一下的。 首先我们得认识 HTTP协议(Hypertext Transfer Protocol, 超⽂本传输协议),是⼀个客户端请求和响应的标准协议,这个协议详细规定了浏览器和万维⽹服务器之间互相通信的规则。⽤户输⼊地址和端⼝号之后就可以从服务器上取得所需要的⽹⻚信息。 请求协议:客户端发给服务器的格式 响应协议:服务器发给客户端的格式 浏览器中满足 HTTP协议格式的URL http

weixin_44462398的博客 455

http协议和servlet入门笔记

一、HTTP协议 1.1协议的作用及版本 1.1.1HTTP是Hyper Text Transfer Protocol(超文本--html传输协议)。 1.1.2HTTP协议的作用用户描述客户端与服务器间的数据传递的。 1.1.3:Http协议的版本: 1.0:特点:每次请求服务器上的资源都要建立新的连接,响应完毕后都会关闭连接。是无状态的协议。 1.1:特点:在一次TCP/IP连接的

xys_00 391

基于TCP实现的HTTP服务器+Servlet容器

项目目录前言项目简介涉及知识预研HTTP协议TCP 协议与 Socket 套接字编程实现基本原理对于HTTP服务器对于Servlet容器整体工作流程整体流程框架初始化操作具体流程处理HTTP请求具体流程项目模块模块具体实现标准制定模块HTTP服务器模块动态资源模块重点部分详解类加载器加载Servlet类加载器cookie+session的设置整体流程分析源码项目的边界与总结 前言 本篇博客与大家分享的是个人实现的一个HTTP服务器+Servlet容器,其可以理解为极小级的 tomcat 内部功能涉及存储多个

相鱼南故 890

http、tcp/ip和servlet

1.TCP与http关系   (1) IP协议属于网络层 ,TCP协议属于传输层,HTTP协议属于应用层 (2) http全文是超文本传输协议,是一种万维网常用的协议,它是TCP协议的一种典型上的应用。 (3)建立起一个TCP连接需要经过“三次握手”,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。HTTP连接最显著的特点是客户端发送的每次请求...

iteye_4972的博客 196

写xml文件到服务器gb18030,04-Servlet入门+http协议

一、 Servlet1. javaweb 学什么用 java 语言开发动态的web资源,接下来就是介绍如何开发动态的web资源对于java程序员而言,所谓动态web资源就是可以运行在服务器上的java程序2. 实现服务器管理java程序开发人员写好一个java类,到底有哪些方法tomcat服务器是不可能知道的tomcat服务器需要执行我们编写的java类就需要知道我们的java类有哪些方法,然后在...

weixin_42573113的博客 548

JavaWeb开发知识总结(HTTP,servlet)

JavaWeb服务器开发知识总结-HTTP协议,Servlet技术

Somnus blog 440

tomcat和http协议和servlet

文章目录javaweb什么是javaweb?请求和响应常用的web服务器Tomcat目录介绍启动Tomcat服务器Tomcat的停止Tomcat端口号的修改idea下的操作Servlet什么是Servlet实现Servlet程序url地址到Servlet程序的访问Servlet的生命周期通过继承HttpServlet实现Servlet程序(日常) javaweb 什么是javaweb? JavaWeb 是指,所有通过 Java 语言编写可以通过浏览器访问的程序的总称,叫 JavaWeb。 JavaWeb 是

weixin_46744534的博客 841

servlet学习笔记-Servlet的基础:HTTP

一、为什么要学习Servlet      Servlet是Java Web编程的基础,也是MVC架构中“MV”框架的基础,如Spring、Struts,这些框架都是在Servlet的基础上开发的。                                                                  因为大多数的Spring和Struts教程只会教你如何用,但是不会教

2025年写100篇文章 681
上一篇: 【KALI】Hello,Kali Linux
下一篇: 【Servlet】HTTP的Servlet实现
ALGO阿狗
博客等级 码龄9年 64粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值