JavaWeb总结(一)

在学习Web应用程序客户端界面设计时,我们已经知道组成一个基本的Web应用程序需要Web服务器、Web客户端浏览器、HTTP协议以及静态HTML文件。

Web服务器:接收客户端请求,然后向客户端返回一些结果;

浏览器:允许用户请求服务器上的某个资源,并且向用户显示请求的结果;

HTML:告诉用户浏览器怎么向用户显示内容;

HTTP:Web上客户端和服务器之间通信所用的协议;

HTTP

HTTP是一种超文本传送协议(HyperText Transfer Protocol),是一套计算机在网络中通信的一种规则。在TCP/IP体系结构中,HTTP属于应用层协议,位于TCP/IP协议的顶层。HTTP是一种无状态的协议(在Web浏览器[客户端]和Web服务器之间不需要建立持久的链接)。整个过程就是当一个客户端向服务器发送一个请求(Request),然后WEB服务器返回一个响应(Response)。之后链接就关闭了。HTTP遵循请求/响应(Request/Response)模型的,所有的通信交互都被构造在一套请求和响应模型中。
HTTP定义的事务处理由以下四个步骤组成

客户端和Web服务器建立链接;

客户端发送HTTP请求;

服务器端接收客户端的HTTP请求,生成HTTP响应回发;

客户端和Web服务器建立链接;

发送请求信息

一旦建立了TCP链接,Web浏览器就会向Web服务器发送请求命令。HTTP协议将来自于客户端的请求信息封装成HTTP请求,它包括请求行、请求头、消息体以及分隔请求头和消息体的空行;
请求行:请求行是一个ASCII文本行,由三个标记组成:请求的HTTP方法、请求的URL、HTTP版本。中间用空格分开

在HTTP版本1.1中,定义了有八种可能的HTTP请求方法

  Ⅰ GET:由于向服务器检索资源;

  Ⅱ POST:由于向服务器发送数据,并要求指定的URL处理;

  Ⅲ HEAD:与GET方法相同,服务器只返回状态行和头标,并不返回请求文档;

  Ⅳ PUT:请求服务器保存请求数据作为指定URL新内容;

  Ⅴ DELETE:请求服务器删除URL中命名的资源;

  Ⅵ OPTIONS:请求关于服务器支持的请求方法信息;

  Ⅶ CONNECT:已文档化但当前未实现的一个方法,预留做隧道处理;
在这些方法中,我们最常用的是GET和POST方法,其它几种方法对于Web开发者来说不是很常用。


方法


为该方法为该方法的请求


POST


在浏览器地址栏输入URL;
在当前网页点击HTML链接;
在HTML表单中设置表单的method=‘GET‘或者不设置(默认为GET方法提交),并提交表单;


GETGET


通常被用于发送私密信息或者大量信息,或者上传文件。如果一个应用程序需要修改数据或者添加数据,并且通过HTTP发送请求,那么就应该使用POST方法。

请求头:

HTTP协议使用HTTP头来传递请求的元信息,HTTP头是一个用冒号分隔的名称/值对,冒号前面是HTTP头的名称,后面是HTTP的值。常见的请求头由用户代理资料、可以接受的格式、语言以及内容编码,这些信息用于告诉服务器客户端是什么,客户端想要得到什么格式的回馈信息等。

空行:

发送回车符和退行,通知服务器一下不再有请求头。

消息体:

HTTP请求中带有查询字符串时,如果是GET方法,查询字符串或表单数据附加在请求行中,那么消息体中就没有内容;如果是POST方法,查询字符串或表单数据就添加在消息体中。

回送响应消息

Web服务器解析请求,定位并读取指定的资源。将文件以及其它信息组成HTTP响应返回到客户端。HTTP响应包括:状态行、响应头、消息体以及分隔消息头和响应头的一个空行。

状态行:

每个HTTP响应以一个状态行开头。状态行由HTTP协议版本、响应状态码和响应描述组成,三者之间用空格分开。

响应状态码是一个三位的数字,它分为以下几个组:

  Ⅰ 100~199:信息,请求收到,继续处理;

  Ⅱ 200~299:成功,行为被成功地接受、理解和采纳;

  Ⅲ 300~399:重定向,为了完成请求,必须进一步执行的动作;

  Ⅳ 400~499:客户端错误,请求包含语法错误或者请求无法实现;

  Ⅴ 500~599:服务器错误,服务器不能实现一种明显的无效请求;

每一个响应状态码都有相关联的字符串响应描述。

响应头:

响应头与请求头一样,也是一个用冒号分隔的名称/值对,冒号前面是HTTP头的名称,后面是HTTP头的值。典型的响应头包括内容描述、内容长度、时间邮戳、服务器信息、内容最后更改的时间。这些信息帮助客户端得到发送过来的内容是什么、内容的大小、数据是否比以前一次响应更新。

在响应头中,最重要的HTTP头是Content-Type,它指定MIME类型。MIME类型告诉浏览器要接受的数据是什么类型,这样浏览器才知道如何显示这些数据。这个值通常与HTTP请求头中的Accept相关

空白行:

最后一个响应头之后是一个空行,发送回车符和退行,表明以下不再有响应头。

消息体:

要发送给客户端的HTML文档或其他要显示的内容等。Web服务器把发送给客户端的文档信息放在消息体中。

关闭连接

HTTP响应到达客户端后,浏览器先解析HTTP响应中的状态行,查看请求是否成功的状态代码。然后解析每一个响应头,读取响应消息体,将消息体渲染在浏览器页面上。

一个HTML文档可能包含其它的需要被载入的资源,浏览器会识别,并对这些资源再进行额外的请求,这个过程可以一直循环到所有的数据都按照响应头标中规定的格式恢复到页面中。数据传送完毕,服务器关闭连接,即无状态协议。

时间: 2024-08-24 21:55:39

JavaWeb总结(一)的相关文章

第一个远程javaweb项目测试全过程

2017-5-20,在这个奇特的日子,我不再满足于在本地测试javaweb,于是在上腾讯云买了第一个云服务器,由于是学生认证,所以一个月只要10块钱,还是要抢的,每天早上9点开抢 打开后,发现其实是一个云主机,就是远程主机,只不过他可以给你一个公网ID,就是在浏览器输入公网ID的话,全国所有人都可以访问你的项目 关于怎么把自己的javaweb项目放到云主机,有一个教程http://www.cnblogs.com/diyunfei/p/6826557.html,前提是得先在云主机下载配置jkd,t

Javaweb程序服务器部署

话说从接触web后就想着写一个自己的站点然后别人都可以访问,这也是一个小目标吧,从之前在使用校园网的时候把自己的电脑当成服务器然后部署使用同学的电脑访问,现在想让所有人都可以访问,于是就花重金租了腾讯的云服务器,至于怎么租腾讯的云服务器就不赘述了,其实还有阿里的可以选择. 在租服务器的时候选的系统是centos7,之前使用过ubuntu只是听说服务器的系统一般都选centos就选了,后来查了一些centos的资料后来好多都是在使用的时候查的. 首先我自己安装的是java环境 在官网下在相应的rp

javaWeb基础知识----Cookie,Session

?HTTP协议是一种无状态的协议,WEB服务器本身不能识别出哪些请求是同一个浏览器发出的,浏览器的每一次请求都是完全孤立的 ?即使 HTTP1.1支持持续连接,但当用户有一段时间没有提交请求,连接也会关闭. ?怎么才能实现网上商店中的购物车呢:某个用户从网站的登录页面登入后,再进入购物页面购物时,负责处理购物请求的服务器程序必须知道处理上一次请求的程序所得到的用户信息. ?作为 web 服务器,必须能够采用一种机制来唯一地标识一个用户,同时记录该用户的状态 1.会话和会话状态 ?WEB应用中的会

JavaWeb:EL表达式

JavaWeb:EL表达式 EL表达式说明 1.Expression Language语言,一种用于JSP文件中的数据访问的语言. 2.能够简化JSP文件中该数据访问的代码,可用来替代传统的基于<%= %>和部分<% %>的程序片段. 3.EL表达式使得JSP文件的创建人员能够用更加简单的语法来访问数据. 4.基本形式为: ${var} EL运算符 (来自孤傲苍狼) 1.关系运算符 2.逻辑运算符: 3.empty运算符:检查对象是否为null(空) 4.二元表达式:${user!

javaweb学习之Servlet开发(二)

javaweb学习总结(六)--Servlet开发(二) 一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数. 例如: 1 <servlet> 2 <servlet-name>ServletConfigDemo1</servlet-name> 3 <servlet-class>gacl.servlet

javaweb学习总结(四十五)——监听器(Listener)学习二

一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器. 这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRequestAttributeListener,这三个接口中都定义了三个方法来处理被监听对象中的属性的增加,删除和替换

Javaweb学习笔记4—Reuest&amp;Response

 前几天博客被黑了,导致博客登陆不上,把前几天应该发的东西的东西重新发一遍 今天来讲javaweb的第四段学习. Request和Response还是比较重要的 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 响应对象 1,Response响应: 常用响应对象:ServletResponse HttpServletResp

Javaweb学习笔记5—Cookie&amp;Session

 前几天博客被黑了,导致博客登陆不上,把前几天应该发的东西的东西重新发一遍  今天来讲javaweb的第五阶段学习. Cookie和Session同样是web开发常用到的地方. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 一.会话管理技术概述 1 什么是会话? 这里的会话指的是web开发中的一次通话过程,当打开浏览

Javaweb学习笔记6—EL表达式与JSTL及自定义标签

 前几天博客被黑了,导致博客登陆不上,把前几天应该发的东西的东西重新发一遍 今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 一.EL表达式 1,EL简介 Expression Lan

JavaWeb网站技术架构

JavaWeb网站技术架构总结 题记 工作也有几多年了,无论是身边遇到的还是耳间闻到的,多多少少也积攒了自己的一些经验和思考,当然,博主并没有太多接触高大上的分布式架构实践,相对比较零碎,随时补充(附带架构装逼词汇). 俗话说的好,冰冻三尺非一日之寒,滴水穿石非一日之功,罗马也不是一天就建成的,当然对于我们开发人员来说,一个好的架构也不是一蹴而就的. 初始搭建 开始的开始,就是各种框架一搭,然后扔到Tomcat容器中跑就是了,这时候我们的文件,数据库,应用都在一个服务器上. 服务分离 随着系统的