• Servlet
  1. 是一个java应用程序,一个Servlet应用有一个或多个Servlet程序,JSP页面会被转换和编译成Servlet程序。
  2. Servlet应用无法独立运行,必须运行在Servlet容器中。Servlet容器将用户的请求传递给Servlet应用,并将结果返回给用户,由于大部分的Servlet应用都包含多个JSP页面,因此更准确滴说是“Servlet/JSP应用”。Apache Tomcat和Jetty是当前最流行的Servlet/JSP容器。
  3. Servlet、JSP只是Java企业版众多技术中的两个,其他的Java EE技术好友Java消息服务、企业Java对象、JavaServer Faces以及Java持久化等,要运行Java EE应用需要Java EE容器,例如GlassFish、JBoss等,当然可以讲Servlet应用部署到Java EE容器中,但是大题小作,Tomcat和Jetty更加轻量级。当然,Tomcat/Jetty无法运行EJB、JMS等Java EE中的其他技术。

  • 通信协议

web服务器和web客户端通过HTTP协议通信 ,除HTTP协议外,url还可以采用其他类型的协议,如ftp://marketing@ftp.example.org

  1. HTTP URL的格式如下:

protocol://[host.]domain[:port][/context][/resource][?queryString]

协议://[主机名.]域名[:端口号][/应用][资源路径][参数]

或者

protocol://[host.]IP address[:port][/context][/resource][?queryString]

解释与示例:

a. http://yahoo.com(无host),http://mail.yahoo.com(有host),www是默认的主机名,通常http://www.domainName会被映射到http://domainName

b. 一台计算机可以托管不止一个域名,因此不同的域名可能指向同一个IP,example.com/example.org无法被注册,被保留作为各类文档手册举例使用。另外还可以用ping命令来获取域名对应的IP地址。

c. HTTP的默认端口号是80,因此采用80端口号的Web服务无需输入端口号(HTTPS的默认端口号是443,tomcat的默认端口号是8080)

d. URl中的context部分用来代表应用名称,一台web服务器可以配置多个山下文(应用),其中一个可以配置为默认上下文,访问默认上下文中的资源,可以省略context,一个context中有一个或多个默认资源,通常为index.html,index.htm,default.htm,一个没有带资源名称的url通常指向默认资源。

   2.  HTTP请求

一个HTTP请求包含三部分内容:

·方法-URI-协议/版本

·请求头信息

·请求正文

第一行即为:post方法-uri-协议/版本

HTTP 1.1规范中定义了请求方法包含七种:get、post、head、options、put、delete、trace

HTTP请求头包含客户端环境以及实体内容等信息,如浏览器所设置的语言实体内容长度等。每个请求头用回车/换行(即CRLF)分隔。

CRLF用于分隔请求头和请求体,最后一行即为请求体。

 3.  HTTP响应

·协议-状态码-描述

·响应头信息

·响应正文

第一行:协议/版本-状态码-描述

响应头

响应正文和响应头之间用CRLF分隔

状态码示例:访问未授权的资源401,使用被禁用的请求方法405。

      1xx消息:这一类型的状态码,代表请求已被接受,需要继续处理;2xx成功;3xx重定向:这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的Location域中指明。;  4xx客户端错误;5xx服务器错误;其他非官方状态码420,444,450,494

Servlet与通信协议概述的更多相关文章

  1. Servlet技术之——概述、实现、细节、获取资源、ServletConfig、ServletContext

    Servlet概述.实现.细节.获取资源.ServletConfig.ServletContext (一) Setvlet基本概述 (1) 什么是Servlet ? Servlet(Server Ap ...

  2. web开发技术中Servlet技术的概述

    1.servlet是什么:servlet是一个位于服务器端的java应用程序它可以像jsp一样,直接输出信息 servlet类必须继承HttpServlet类,否则,不能称为serlvet servl ...

  3. servlet和jsp概述

    1.servlet的作用 B/S系统:浏览器/服务器(Servlet的服务模式) Servlet是运行在web服务器或应用服务器上的java程序,它是一个中间层,负责连接来自web浏览器或其它HTTP ...

  4. 01 Servlet & Jsp 技术概述

    Servlet 介绍 servlet 是运行在web服务器或应用服务器上的java程序, 它是一个中间层, 负责连接来自web浏览器或其他http客户端的请求和HTTP服务器上的数据库或应用程序. 为 ...

  5. JSP&Servlet学习手册

    JSP&Servlet学习手册 沙琪玛 书 目录 JSP 指令... 3 书写方式... 3 指令列表... 3 JSP 内置对象... 3 内置对象特点... 3 常用内置对象... 3 o ...

  6. 通信协议演进与JCE协议详解

    一.通信协议概述通信协议是两个节点之间为了协同工作.实现信息交换,而协商的规则和约定,例如规定字节序,各个字段类型,使用什么压缩算法或加密算法等. 1.原始数据假设A和B通信,获取或设置用户基本资料, ...

  7. 7.22实习培训日志-JSP Servlet

    周末总结 今天下午在学习servlet,想自己做一个简单的例子,于是用idea新建一个maven项目,为了后文叙述方便,我们取名为项目1,点击create from archetype,我先选择org ...

  8. Web_Servlet—— Servlet生命周期

    第4章 Servlet生命周期(重要) 4.1 Servlet生命周期概述 1,应用程序中的对象不仅在空间上有层次结构的关系,在时间上也会因为处于程序运行过程中的不同阶段而表现出不同的状态和不同的行为 ...

  9. Spring mvc源码分析系列--Servlet的前世今生

    Spring mvc源码分析系列--Servlet的前世今生 概述 上一篇文章Spring mvc源码分析系列--前言挖了坑,但是由于最近需求繁忙,一直没有时间填坑.今天暂且来填一个小坑,这篇文章我们 ...

随机推荐

  1. Js电子时钟

    简单版电子时钟,需要以下几个步骤 1. 封装一个函数 返回当前的时分秒 2. 使用定时器使当前以获取到的系统时间走动,每间隔一面调用 3. 把获取到的时间放到span盒子里,添加样式 效果展示  实现 ...

  2. day29 Pyhton 面向对象 多态 封装

    # coding:utf-8 # py2中的经典类 # class D:#没有继承object是经典类# pass # # def func(self): # # print('d') # class ...

  3. 【学习笔记】Min-max 容斥

    经常和概率期望题相结合. 对于全序集合 \(S\),有: \[\max S=\sum\limits_{T\subseteq S,T\not=\varnothing}(-1)^{\vert T\vert ...

  4. spring boot:redis+lua实现生产环境中可用的秒杀功能(spring boot 2.2.0)

    一,秒杀需要具备的功能: 秒杀通常是电商中用到的吸引流量的促销活动方式 搭建秒杀系统,需要具备以下几点: 1,限制每个用户购买的商品数量,(秒杀价格为吸引流量一般会订的很低,不能让一个用户全部抢购到手 ...

  5. Python之包的相关

    包的产生: 由于模块不断更新,越写越大,仅用单个py文件会使模块逻辑不够清晰,所以需要将模块的不同功能放入不同的py文件,然后将所有py文件放在一个目录内,这个目录就是包 包就是一个包含用__init ...

  6. Python函数的定义和参数

    函数的初识: 以功能为导向,一个函数就是一个功能.随调随用. 优点: 减少代码重复性. 增强代码的可读性. 函数的结构: def function_name(): 函数体 ​ def: 关键字,定义函 ...

  7. js实现无缝连接轮播图(二)实现自定义属性,根据banner图片的数量动态生成小圆点

    <!-- 这个animate.js 必须写到 index.js的上面引入 --><script src="js/animate.js"></scrip ...

  8. Linux命令的执行

    为什么在提示符下命令可以被执行呢? 执行命令过程 输入命令后回车,提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来 shell本身也是一个程序,只不过 ...

  9. Redis入门之认识redis(一)

    第1章 非关系型数据库 1.1 NoSQL数据库概述 1) NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",泛指非关系型的数据库. NoSQL 不 ...

  10. 性能测试之JVM的故障排查-堆内存泄漏

    JVM异常说明(超链接) 一文中已介绍了,JVM每个运行时区域--程序计数器 .Java虚拟机栈.本地方法栈.Java堆.方法区.直接内存发生OutOfMemoryError的不同原因和不同错误信息. ...