说道说道JSP和HTTP吧

2024-03-24 10:44
文章标签 http jsp 说道

本文主要是介绍说道说道JSP和HTTP吧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大家都知道的是JSP(Java Server Pages),也知道有个传输协议为HTTP协议,那么他俩到底有啥关系?像是有关系但又有点说不清楚,这里咱们一块捋一捋。

我们说servlet处理客户端请求的方式有2种:get和post。

也知道了http的8种请求方法:get、post、put、delete、options、trace、connect、head。

那http的get、post方法和servlet处理请求的get、post方式有啥关系呢?我们再说servle的时候都说get和post根据表单的method方法的方式来确定是get还是post,那就有个问题了。

我们刚开始打开浏览器还没有提交表单的时候,浏览器怎么知道是用哪种方式呢?是get还是post呢,毕竟我们只在浏览器输入了URL地址,没有提交任何form。

为什么会有以上的疑问?

因为我们上面提到的http协议,在发送报文的时候,报文前面都是包含请求方式的,例如我们对我们自己的网站里面的index.html请求,在浏览器输入http://localhost:8080/index.html,回车之后客户端向服务器端发送请求:

GET /index.html HTTP/1.0
Host: www.gefionsoftware.com
User-Agent: Mozilla/4.5 [en] (WinNT;I)
Accept: image/gif, image/jpeg, image/pjpeg, image/ping,*/*
Accept-Language : en
Accept-Charset : iso-8859-1,*,utf-8

上面的例子里面,第一行是请求行,表明是GET命令,请求的资源是index.html ,协议是HTTP1.0。

那么GET命令是怎么确定的呢?

1、浏览器会发送Get请求的情况

A、直接在浏览器地址栏输入某个地址。

B、点击某个链接。

C、表单默认的提交方式,也就是不指定method方法的时候,默认是Get方式。

通过上面的说明,大家应该就清楚了,直接在浏览器输入地址是get方式发送请求。

2、浏览器会发送post请求的情况

设置表单method = “post”,在这种情况下,请求方式才会是post方式。

3、get请求的特点

请求参数会添加到URL的后面,只能添加少量参数(因为请求行只有一行,大约只能存放2K左右的数据)

请求参数会显示在浏览器地址栏,路由器会记录请求地址

4、post请求的特点

1、 请求参数添加到实体内容里面,可以添加大量的参数(也解释了为什么浏览器地址栏不能发送post请求,在地址栏里我们只能填写URL,并不能进入到Http包的实体当中)

2、 相对安全,但是,post请求不会对请求参数进行加密处理(可以使用https协议来保证数据安全)。

5、http和jsp没有必然联系

今天去讲http报文的默认get方式,其实要表达的内容跟jsp没有关系,但我们在学jsp的时候,我们在服务器端放着的静态或者动态页面,怎么去展示呢?其实就是浏览器端通过http协议或者报文的方式发送请求到服务器端,服务器根据请求内容去进行业务逻辑处理,然后响应到浏览器的页面上。

举个例子:在浏览器输入栏中输入https://blog.csdn.net/luohaitao  我的博客主页就出现在浏览器窗口。这背后是什么在起作用呢?这个就需要弄明白。

使用浏览器从网站获取HTML页面时,实际在使用Hypertext Transfer Protocol (HTTP) HTTP协议规定了信息在Internet上的传输方法,特别规定了浏览器与服务器的交互方法。

从网站获取页面时,浏览器在网站上打开了一个对网络服务器的连接,并发出请求,服务器收到请求后响应,所以HTTP协议被称作“请求和响应”协议。

浏览器可以直接请求某个网址例如:www.baidu.com,域名映射到ip,然后关联到某个welcome.html或者index.html或者welcome.jsp,也或者是通过映射过滤去处理浏览器的请求。

一个典型请求通常包含许多头,称作请求的HTTP头。头提供了关于信息体的附加信息及请求的来源,其中有些头是标准的,有些头和特定的浏览器有关。

一个请求还可能包含信息体。例如信息体可包含HTML表单的内容。在HTML表单上单击Submit按钮时,该表单使用ACTION=“POST”或ACTION=”GET”特征,输入表单的内容都被发送到服务器上,该表单内容就由POST方法或GET方法在请求的信息体中发送。

服务器在收到请求时,返回HTTP响应。响应也有某种结构,每个响应都由状态行开始,可以包含几个头及可能的信息体,称作响应的HTTP头和响应信息体。这些头和信息体由服务器发送给客户的浏览器,信息体就是客户请求的网页运行结果,对于JSP页面,就是网页的静态信息。

6、jsp怎么响应http的请求方法

还记得前面讲的http的8种请求方法:get、post、put、delete、options、trace、connect、head吧,在讲servlet的时候我们重点提到了响应get和post的方法,对应的servlet对象为:HttpServlet,那么我们很自然的要问,http的其他请求方法怎么办?其实吧,HttpServlet里面也都有了,只是我们前面没用到罢了。

doHead():用来处理HTTP客户端的HEAD请求。

doGet():如果HTTP客户端发给服务器的请求是GET方式,这个方法将被service方法调用。

doPost(): 如果HTTP客户端发给服务器的请水是POSI万式,区个方法会被service方法调用。

doDelete():用来处理HTTP客户端的DELETE请求。

doOptions():用来处理HTTP的OPTIONS请求此外,还有doPut()方法和doTrace()

铁子们,是不是都get到了?能理解你们的是不是只有我才能彩透你们想要问什么,这下心里不堵得慌了吧。

参考资料:

https://blog.csdn.net/guanjungao/article/details/36191107

https://blog.csdn.net/m0_67444502/article/details/127979516

https://blog.csdn.net/m0_64892750/article/details/122114632

这篇关于说道说道JSP和HTTP吧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/841361

相关文章

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

SpringBoot如何访问jsp页面

《SpringBoot如何访问jsp页面》本文介绍了如何在SpringBoot项目中进行Web开发,包括创建项目、配置文件、添加依赖、控制层修改、测试效果以及在IDEA中进行配置的详细步骤... 目录SpringBoot如何访问JSP页python面简介实现步骤1. 首先创建的项目一定要是web项目2. 在

Python如何实现 HTTP echo 服务器

《Python如何实现HTTPecho服务器》本文介绍了如何使用Python实现一个简单的HTTPecho服务器,该服务器支持GET和POST请求,并返回JSON格式的响应,GET请求返回请求路... 一个用来做测试的简单的 HTTP echo 服务器。from http.server import HT

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

Anaconda 中遇到CondaHTTPError: HTTP 404 NOT FOUND for url的问题及解决办法

最近在跑一个开源项目遇到了以下问题,查了很多资料都大(抄)同(来)小(抄)异(去)的,解决不了根本问题,费了很大的劲终于得以解决,记录如下: 1、问题及过程: (myenv) D:\Workspace\python\XXXXX>conda install python=3.6.13 Solving environment: done.....Proceed ([y]/n)? yDownloa

构建高性能WEB之HTTP首部优化

0x00 前言 在讨论浏览器优化之前,首先我们先分析下从客户端发起一个HTTP请求到用户接收到响应之间,都发生了什么?知己知彼,才能百战不殆。这也是作为一个WEB开发者,为什么一定要深入学习TCP/IP等网络知识。 0x01 到底发生什么了? 当用户发起一个HTTP请求时,首先客户端将与服务端之间建立TCP连接,成功建立连接后,服务端将对请求进行处理,并对客户端做出响应,响应内容一般包括响应

Golang支持平滑升级的HTTP服务

前段时间用Golang在做一个HTTP的接口,因编译型语言的特性,修改了代码需要重新编译可执行文件,关闭正在运行的老程序,并启动新程序。对于访问量较大的面向用户的产品,关闭、重启的过程中势必会出现无法访问的情况,从而影响用户体验。 使用Golang的系统包开发HTTP服务,是无法支持平滑升级(优雅重启)的,本文将探讨如何解决该问题。 一、平滑升级(优雅重启)的一般思路 一般情况下,要实现平滑