Java Web——简单了解Http协议

news/2025/2/9 5:33:48

文章目录:

1.Http服务器介绍

2.Http服务器交互流程

3.Http网络协议包的分类

3.1 Http请求协议包(四部分)

3.2 Http响应协议包(四部分) 

4.Http常见的状态码


1.Http服务器介绍

  1. 所有的Http服务器都是由Java编程语言开发的应用程序。
  2. Http服务器可以接收由浏览器发出的Http请求协议包。
  3. Http服务器可以解析由浏览器发来的Http请求协议包,将该协议包解析为二进制数据,以便了解用户的请求。
  4. Http服务器可以自动定位被访问的资源文件。
  5. Http服务器可以自动将被访问的文件内容或者运行结果通过输出流以二进制形式写入到Http响应协议包中。
  6. Http服务器可以自动将Http响应协议包推送给发起请求的浏览器。

2.Http服务器交互流程

  1. 浏览器(Brower)和服务器(Server)建立连接(B/S)
  2. 浏览器发送请求数据到服务器
  3. 服务器接收到请求后,进行处理,然后将处理结果返回给浏览器
  4. 关闭浏览器和服务器的连接

3.Http网络协议包的分类

一、Http请求协议包:① 在浏览器准备发送请求时,负责生成一个Http请求协议包。

                                   ② 在浏览器准备发送请求时,负责将请求信息写入Http请求协议包。

                                   ③ 由浏览器负责将Http请求协议包推送给Http服务器。

二、Http响应协议包:① 在Http服务器准备返回结果时,负责生成一个Http响应协议包。

                                   ② 由Http服务器调用输出流将文件内容(文字、数字、像素、帧)写入到Http响应协议包。

                                   ③ 由Http服务器负责将Http响应协议包推送给发起请求的浏览器。

3.1 Http请求协议包(四部分)

  1. 请求行:包括 url 请求地址、method 请求方式。
  2. 请求头:如果浏览器以GET方式发送请求,则请求参数存放在请求头中。
  3. 空白行:无内容,但是必须存在。可以理解为用来分隔请求头和请求体。
  4. 请求体:如果浏览器以POST方式发送请求,则请求参数存放在请求体中。

3.2 Http响应协议包(四部分) 

  1. 响应行(状态行):Http状态码。
  2. 响应头:content-type,指定浏览器使用对应的解析器或者编译器,将从Http服务器返回过来的相应的二进制信息进行解析或者编译。
  3. 空白行:无内容,但是必须存在。
  4. 响应体:本次索要的文件内容。


4.Http常见的状态码

介绍:由Http服务器生成一个由三位数字组成的符号。表示本次通信的状态同时可以要求浏览器接收到响应包之后的行为。

分为下面五个大类:

1... 信息,服务器收到请求,需要请求者继续执行

2... 成功,操作成功接受并处理

3... 重定向,需要进一步操作以完成请求

4... 浏览器错误,请求包含语法错误或无法完成请求

5... 服务器错误,服务器在处理请求时发生错误 

200:Http服务器将浏览器请求的资源文件进行了返回。

302:Http服务器通知浏览器到响应头中的location属性中读取请求地址,并要求浏览器将得到的请求地址更新到浏览器的地址栏。

404:Http服务器通知浏览器本次索要的资源文件不存在。主要有以下几种原因:

  1. 网站名不对。
  2. 网站名正确,但是资源文件名不对。
  3. tomcat没有在网站定位默认欢迎资源文件。(标签 <welcome-file-list>...</welcome-file-list>)
  4. 请求地址没有按照 uri 的标准格式进行设置。
  5. IDEA没有将最新网站内容交给tomcat。

405:Http服务器通知浏览器本次索要的资源文件已经被找到了,但是这个资源文件对于浏览器请求方式无法接收。(get、post)。

500:Http服务器通知浏览器本次索要的资源文件已经被找到了,并且也可以接收浏览器的请求方式,但是由于资源文件在处理过程中出现了异常因此无法提供服务。


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

相关文章

io python 读取pdf_Python读取PDF信息填入Word文档

Hello&#xff0c;上个周末没能搞事情&#xff0c;被一个代码需求给绊住了&#xff1a;朋友在平时工作中会经常重复性地打开不同PDF文件&#xff0c;选取其中特定的几组信息复制粘贴到不同的Word文档中&#xff0c;完成一份PDF文件平均耗时15分钟&#xff0c;想试试Python代码能…

html左侧浮动css,float:left css浮动靠左 布局靠左

css float:left 浮动靠左组织首先float是机关网页浮动(对象靠左left、靠右right)花式属性单词。在机关中我们要让对象靠左浮现只须要对对象配置float:left格式就可。一、float left语法1、float:left使用树模代码div{float:left}配置div结构靠左。2、float:left表达float:left是…

成长游戏

一、软件介绍软件有积分和金币两种指数。1&#xff09;积分用来记录成长&#xff0c;积分到达一定程序后会升级。积分的获取渠道&#xff1a;任务、荣誉。每个任务可以配置相应的积分。添加荣誉时也可以配置积分。2&#xff09;金币用来奖励&#xff0c;金币可以用来兑换愿望。…

图像处理之基础---卷积函数积分的计算和性质

http://www.eefocus.com/article/08-03/34761s.html转载于:https://www.cnblogs.com/pengkunfan/p/3903632.html

Java Web——Servlet之前的调用方式、重定向解决方案、请求转发解决方案

1.Servlet之前的调用方式 1.前提条件&#xff1a;针对浏览器某次请求&#xff0c;需要在服务端中由多个Servlet参与其中&#xff0c;但是浏览器一次只能请求一个资源文件&#xff0c;导致用户为了得到服务&#xff0c;结果需要手动通过浏览器发起多次请求&#xff0c;增加用户获…

控制局部对触摸的响应与否

BView遮挡AView&#xff0c;BView有子viewB1&#xff0c;AView有手势。希望点击在B1中的时候&#xff0c;AView可以响应手势。 若果让BView整个userInteractionEnabled NO&#xff0c;那么点击在BView的任何地方&#xff0c;AView的手势都会响应&#xff0c;不符合要求。 可以…

博图组态显示未分配的设备_S7-1200 PWM 功能组态及编程方法

本文档以DC/DC/DC类型的S7-1200 CPU为例进行说明。在Portal 软件中插入S7-1200 CPU(DC输出类型)&#xff0c;在“设备视图”中配置PWM。1. 进入CPU“常规”属性&#xff0c;设置“脉冲发生器”。如下图所示&#xff1a;2. 启用脉冲发生器&#xff0c;可以给该脉冲发生器起一个名…

[1252]进制转换 sdutOJ

&#xfeff;&#xfeff;进制转换 Time Limit: 1000ms Memory limit: 65536K 有疑问&#xff1f;点这里^_^ 题目描述 输入一个十进制数N&#xff0c;将它转换成R进制数输出。输入 输入数据包含多个测试实例&#xff0c;每个测试实例包含两个整数N(32位整数)和R&#xff08;…