当我们开始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通信协议的更多相关文章

  1. JavaWeb学习 (二十八)————文件上传和下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  2. JavaWeb学习 (二十七)————监听器(Listener)在开发中的应用

    监听器在JavaWeb开发中用得比较多,下面说一下监听器(Listener)在开发中的常见应用 一.统计当前在线人数 在JavaWeb应用开发中,有时候我们需要统计当前在线的用户数,此时就可以使用监听 ...

  3. JavaWeb学习 (二十六)————监听器(Listener)学习(二)

    一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信 ...

  4. JavaWeb学习 (二十五)————监听器(Listener)

    一.监听器介绍 1.1.监听器的概念

  5. JavaWeb学习 (二十四)————Filter(过滤器)常见应用

    一.统一全站字符编码 通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题 1 package me.gacl.web.filter; 2 3 import ja ...

  6. JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  7. JavaWeb学习 (二十)————JavaWeb的两种开发模式

    一.JSP+JavaBean开发模式 1.1.jsp+javabean开发模式架构 jsp+javabean开发模式的架构图如下图(图1-1)所示

  8. JavaWeb学习总结(三)——Tomcat服务器学习和使用(二) 包含https 非对称秘钥 NB

    JavaWeb学习总结(三)--Tomcat服务器学习和使用(二) 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命 ...

  9. javaweb学习总结(六)——Servlet开发(二)

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

随机推荐

  1. SHA-1退休:数千万用户通向加密网站之路被阻

    ​ Facebook和Cloudflare警告道:上千万用户将无法访问只使用SHA-2签名证书的HTTPS网站.2016年-2017年是SHA-1算法的缓冲期.2017年开始CA机构将不能颁发含有sh ...

  2. 【转】常见六大Web 安全攻防解析

    原文转自:https://segmentfault.com/a/1190000018073845 作者:浪里行舟 在互联网时代,数据安全与个人隐私受到了前所未有的挑战,各种新奇的攻击技术层出不穷.如何 ...

  3. 【手记】解决Resharper 2018.x起本机license server不能用的问题

    ReSharper升级到2018版后,一直用的好好的本机license server(下称LS)不能用了,报The license server address is incorrect....在网上 ...

  4. C#获取电脑型号、系统版本、内存大小、硬盘大小、CPU信息

    摘要 有时需要获取电脑的相关信息.这时可以通过调用windows api的方式,进行获取. 方法 可以通过在powershell中 通过下面的命令进行查询,然后可以通过c#调用获取需要的信息. gwm ...

  5. .NET 简单导出CSV文件

    Response.ClearContent(); Response.AddHeader("content-disposition", "attachment; filen ...

  6. Extjs4 store load 有中文字符提交后台乱码解决方法

    一.在load提交时对字符串进行decode处理. {name : encodeURIComponent(value)} 然后在后端进行反编码 java.net.URLDecoder.decode(n ...

  7. Doclever 接口mock 操作

    查看 接口项目mock 查看说明 假设 本机项目路径为  http://localhost:8080 >> 启动 node node net.js http://org.my.com/mo ...

  8. oracle上机实验内容

    这是oracle实验的部分代码,我花了一中午做的. 第一次上机内容 实验目的:熟悉ORACLE11G的环境 实验内容: 第二次上机内容 实验目标:掌握oracle体系结构,掌握sqlplus的运行环境 ...

  9. Tunnel Warfare(hdu1540 线段树)

    Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  10. TF-IDF原理

    什么是TF-IDF TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率).  是一种用于资讯检索与资讯探勘的常用加权技术.TF-IDF ...