Javaweb学习(二):Http通信协议
当我们开始jsp/servlet编程之旅之前,我们还需要知道一些关于网络通讯方面的一些知识。这样能更加有助于我们的理解,希望大家能看懂我的描述,而不至于在学习的路上一知半解。(手动比❤)
认识Http通信协议
http也叫做超文本传输协议,是网页基本的通信协议,也是我们进行网页开发的基础,因此,我们首先要对其进行学习。
我们可以通过一个基本的客户端与服务器的通信过程来对其进行学习:

由图中我们可以看出http是基于请求/响应的通讯模型,并且只能是客户端向服务器端来发送请求,从而获得我们所需要的文件或者文本。同时由于客户端在发送请求时只需发送请求方法和路径,因此http协议极大限度的提高了通信速度。
从http方面来讲,我们编程是要认识到其几个个基本但是非常重要的特点:一个是上文所说的基于请求/响应的通讯模型,还有就是http通信协议是无连接,无状态的。无连接是指每次连接只会处理一次请求,如果服务器处理完成并且收到客户端应答后会立即断开连接。无状态则是指其对于传输的文件没有记忆能力,一旦后续的处理需要前面所传信息,则其必须重新进行传输。
同时,我们在浏览器端使用Http发出请求时,可能会使用以下请求方法,如get、post、head、put、delete方法等,而我们编写jsp/servlet时最最主要是学习两种方法,即get、post方法。
get请求
get请求即向服务器取得所需要的资源。当get请求到达服务器程序时,我们所写的服务器程序一般是根据请求参数来做出正确的响应。
一般一个正确的get请求如下图所示:

当然,我们的请求参数也不一定只能是一个,如果是多个的情况参数之间要用&来进行分割:

get请求会显示在地址栏上,但要知道的是get请求可以发送的请求参数长度是有限的,所以如果要传递大批量的数据,我们的选择应当是post请求。
post请求
post请求即请求时发布信息给服务器。请求参数不会暴露在网址后面,而是将参数放在请求主体中,因此我们通常会用其进行大批量数据传输和比较隐秘数据的传输。

从图中可以看出,我们写在表单中通过post方式传递的数据存储在Form Data中。
如何对post和get方式进行选择?
知道了区别之后,怎么对这两种方式进行选择呢?我们主要根据以下四点:
1.传递数据量的大小
2.因为get请求参数会放在地址栏上,因此比较敏感或者对网站安全有影响的信息应避免用get方法。
3.当我们需要保存一个网页成为书签以便于下次访问时,最后用get方法,因为post方法无法将参数显示在地址栏上。
4.浏览器有时候会根据对网站内容进行缓存,有时为了防止我们所访问的内容是原来的缓存,因此可以用post方式进行访问,如果要用get方式的话也可以用时间戳来进行访问。
Javaweb学习(二):Http通信协议的更多相关文章
- JavaWeb学习 (二十八)————文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- JavaWeb学习 (二十七)————监听器(Listener)在开发中的应用
监听器在JavaWeb开发中用得比较多,下面说一下监听器(Listener)在开发中的常见应用 一.统计当前在线人数 在JavaWeb应用开发中,有时候我们需要统计当前在线的用户数,此时就可以使用监听 ...
- JavaWeb学习 (二十六)————监听器(Listener)学习(二)
一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信 ...
- JavaWeb学习 (二十五)————监听器(Listener)
一.监听器介绍 1.1.监听器的概念
- JavaWeb学习 (二十四)————Filter(过滤器)常见应用
一.统一全站字符编码 通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题 1 package me.gacl.web.filter; 2 3 import ja ...
- JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- JavaWeb学习 (二十)————JavaWeb的两种开发模式
一.JSP+JavaBean开发模式 1.1.jsp+javabean开发模式架构 jsp+javabean开发模式的架构图如下图(图1-1)所示
- JavaWeb学习总结(三)——Tomcat服务器学习和使用(二) 包含https 非对称秘钥 NB
JavaWeb学习总结(三)--Tomcat服务器学习和使用(二) 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命 ...
- javaweb学习总结(六)——Servlet开发(二)
一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...
随机推荐
- redis-小用
1.redis之flushall.flushdb‘尴尬’操作恢复 redis是基于内存的一种高效数据库,在内存中高效但是不安全,重启和断电都会导致数据丢失.所以就需要用到数据的持久化,redis有两种 ...
- Eclipse 处理 Console 打印信息自动删除
开发中,特识是需要项目运行打印日志很长的时候需要查看打印的日志, Eclipse没经过设定的话,会自动80000行之前的日志记录. 想要日志一直打印下去处理方法: Preferences --> ...
- eclipse下查看java源码设置
myway: 1.选择一函数,按住ctrl,显示open declaration(或按F3); 2.点进去: 如果未配置,点 source attachment configuration -- ex ...
- CSS学习笔记04 CSS文字排版常用属性
字体样式属性 font-size:字号大小 font-size属性用于设置字号,该属性的值可以使用相对长度单位,也可以使用绝对长度单位.其中,相对长度单位比较常用,推荐使用像素单位px,绝对长度单位使 ...
- 【原】Solr入门之概念和安装
Apache Solr 是Apache Lucene项目的开源企业搜索平台.其主要功能包括全文检索.命中标示.分面搜索.动态聚类.数据库集成,以及富文本(如Word.PDF)的处理.Solr是高度可扩 ...
- Codeforces687C(SummerTrainingDay03-D DP)
C. The Values You Can Make time limit per test:2 seconds memory limit per test:256 megabytes input:s ...
- JavaScript高级编程——引用类型、Array数组使用、栈方法
JavaScript高级编程——引用类型.Array数组使用.栈方法 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999 ...
- Wampserver配置与本地建站
☆根目录修改问题 /.修改运行根目录 1.修改apache配置,将服务请求定位到新目录下 →左击wampserver,点击Apache打开httpd.conf文件,Ctrl+f搜索documentro ...
- 使用Apache php 的一些基本操作(一)
切换目录命令:(就可以在www文件夹里面操作了) cd /var/www/html 新建一个文件: sudo vim info.php (这里出现了一个问题,sudo: vim: command no ...
- html页面跳转传递参数
效果如下: a页面 点击跳转按钮后 在b页面可以获取到对应的值. 代码如下: a页面: <!DOCTYPE html> <html> <head lang="e ...