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配置一些 ...
随机推荐
- Centos7 安装字体库&中文字体
1.概述 在安装一些服务的时候,会涉及到字符编码与字体的问题,字符编码一般在数据库或代码级别设置,字体一般是在系统级别设置.如安装使用jira或confluence的时候,使用一些宏的时候经常会出现乱 ...
- java 正则例子
1.不易开头.结尾:小数:圆角字符 包含数字.字母.圆角字符 不以<br/>开头.结尾,但中间可以存在 小数中的小数点是半角 正则表达式 "^(?!<br/>)(([ ...
- jQuery中的函数汇总1
欢迎访问我的github:huanshen,有我的源码解析 1.each 跟for循环很像,但是更有用,如果你理解了就知道了. // 遍历一个数组或者对象 // obj 是需要遍历的数组或者对象 // ...
- [Luogu 2656] 采蘑菇
Description 小胖和ZYR要去ESQMS森林采蘑菇. ESQMS森林间有N个小树丛,M条小径,每条小径都是单向的,连接两个小树丛,上面都有一定数量的蘑菇.小胖和ZYR经过某条小径一次,可以采 ...
- php json_encode在CI框架中的使用细节
这个错误的造成原因是加载类类库,转换成json格式的时候不熟悉CI框架的规定导致的,CI框架中规定在将数据转换成json格式的时候需要将类库小写,当然了,调用的时候必须保证有这个类库,且可以在对应的文 ...
- Java基础——collection接口
一.Collection接口的定义 public interfaceCollection<E>extends iterable<E> 从接口的定义中可以发现,此接口使用了泛型 ...
- Win10 新功能 改变显示器色彩
如果你是一个爱看书的工作族,相信一定梦想你的电脑变得跟Kindle一样,这样每天盯着电脑几个小时,眼睛都不会痛了……下面就来看看Win10带来的新体验吧! Ctr+ Windows Key + C 可 ...
- POJ1611(KB2-B)
The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 39211 Accepted: 18981 De ...
- php中的static静态变量
今天碰到了一个php的小试题,一直没有明白为什么第三次循环是static静态变量没有起作用呢?想了好久才明白原理. <?php class MyClass{ function add($b){ ...
- video视频在本地可以播放,在服务器上不可以播放
今天遇到一个比较坑的问题,视频在本地可以播放,然后放到服务器上面就播放不了,原因是因为服务器上面不支持mp4的播放,下面看解决办法.1.首先进入IIS(Internet Information Ser ...