Java-Wed 初认识

解析HTTP协议:
 HTTP是一种超文本传送协议(HyperTextTransferProtocol),是一套计算机在网络中通信的一种规则。
 在TCP/IP体系结构中,HTTP属于应用层协议,位于TCP/IP协议的顶层。HTTP是一种无状态的协议,意思是Web浏览器(客户端)和Web服务器之间不需要建立持久的链接。整个过程就当是一个客户端向服务器发送一个请求(Request),然后Web服务器返回一个响应(Response),之后就关闭了。

HTTP定义的事物处理由以下四个步骤组成:
 1.客户端和Web服务器建立连接
 2.客户端发送HTTP请求
 3.服务器端收客户端的HTTP请求,生成HTTP响应回发
 4.服务器端关闭连接。我会的解析回发响应。恢复页面。

HTTP的格式如下:
 http://bost(主机)[" : " post(端口)][abs_path(绝对路径)]

HTTP协议的特点:
 1.支持客户/服务器模式
 2.简单快速
 3.灵活(允许被传输任意类型)
 4.无连接(仅仅只是发送请求的时候连接,响应完毕就关闭连接)
 5.无状态(可以传送任何方法和路径,并且不会处理事务和保存)

-------------------------------------------分割一个线-----------------------------------------------

发送请求信息:
 1.请求行:
  请求行是一个ASCII文本行,由三个标记组成:HTTP方法、请求的URL、HTTP版本,中间用空格分开。列如:
   GET/LookBook/index.html HTTP/1.0
  在HTTP版本1.1中,定义有八种可能的HTTP请求方法:
   1.GET:用于向服务器检索资源
   2.POST:用于向服务器发送数据,并且要求指定的URL处理
   3.HEAD:与GET方法相同,服务器只返回状态行和标头,并不返回请求文档
   4.PUT:请求服务器保存请求数据作为指定URL新内容
   5.DELETE:请求服务器删除URL中命名的资源
   6.OPTIONS:请求关于服务器支持的请求方法信息
   7.TRACE:请求Web我完全反馈HTTP请求和其标头
   8.CONNECT:己文档化但当前为实现的一个方法,预留做隧道处理

以下方式的HTTP请求为GET方法:
   1.在浏览器地址栏输入URL 
   2.在当前网页上点击HTML连接
   3.在HTML表单中设置表单的method=‘get‘ 并且提交表单
   4.在HTML表单中没有设置表单的method属性 提交表单(如果不设置method属性,默认为get方法)
 2.请求头:
  HTTP协议使用HTTP头来传递请求的元信息、HTTP是一个用冒号分隔的名称/值对,冒号前面是HTTP的名称,后面是HTTP的值。
 3.空行:
  发送回车符合退行,通知服务器以下不再有请求头
 4.消息体:
  HTTP请求中带有查询字符串时,如果是CET方法,查询字符串或者表单数据附加在请求行中,消息体没有内容。如果是POST方法,查询字符串或表单数据就添加在消息体中。

-------------------------------------------分割一个线-----------------------------------------------

回送响应信息:
 HTTP响应包括:状态行、响应头、消息体以及分割消息头和响应头的一个空行
 1.状态行:
  响应状态码是一个三位的数字,分为以下几种:
   1. 1xx:信息,请求收到,继续处理
   2. 2xx:成功,行被成功的接受,理解和采纳
   3. 3xx:重定向(解决不了的问题,从新解决),为了完成请求,必须进一步执行的动作
   4. 4xx:客户端错误,请求包含语法错误或请求无法实现
   5. 5xx:服务器错误,服务器不能实现一种明显无效的请求
  常见的响应码:
   200:客户端请求成功
   400:客户端请求语法错误,不能被服务器所理解
   401:请求未经授权
   403:服务器收到请求,拒绝服务
   404:请求资源不存在
   500:服务器发生了不可预知的错误
   503:服务器不能处理,以后可能恢复
 2.响应头:
  在响应头中,最重要HTTP头是Content-Type,它指定MIME类型。
 3.空白行:
  最后响应头之后是一个空行,发送回车符合退行,表明以下不再有响应头
 4.消息体:
  要发送客户端的HTML文档或其他要显示的内容等。Wed服务器要把发送给客户端的文档信息放在消息体中

-------------------------------------------分割一个线-----------------------------------------------

Web服务器的缺陷(原始Web服务器):
 Web服务器是被实际用来向客户端提供HTTP服务的,它只能向客户端提供静态网页内容。假如我们需要动态页面(在发出请求之前还不存在的动态创建的页面),而且还希望把通过表单或者查询字符串提交的数据保存袋服务器上(即写一个文件或者数据库中),对此原始Web 无法解决。

服务器端网页编程:
 包括最早的CGI技术、微软的ASP和ASP.NET技术、基于Java的Servlet/JSP技术等。

最早的解决方案CGI:
 CGI,即通过网关接口(Commom Gateway Interface),是最早用于创建动态服务器端内容的一种技术。CGI成功为创建动态网页的标准方法。CGI的最大优点是他可以使用Shell、Perl、C、PHP、Python等编写。但是并不完美。在CGI运行时,每次请求回会打开一个CGI进程的方式严重消耗了服务器的内存。

JAVA的解决方案:
 在Java的世界里,Servle以及Web容器,被设计用来解决CGI的问题,为Web开发者创建一个健壮的服务器环境。
 Servle:
  Servle是一个与平台无关的java类,能够编译成平台中立的字节码,从而被基于java技术的Web服务器动态装载和运行。
每一个WEB应用都有必须要有WEB-INF目录、web.xml文件、classes目录。即:
 AppName\
 AppName\WEB-INF
 AppName\WEB-INF\Web.xml
 AppName\WEB-INF\classes

时间: 2024-07-30 12:21:17

Java-Wed 初认识的相关文章

Java发送邮件初窥

一.背景 最近朋友的公司有用到这个功能,之前对这一块也不是很熟悉,就和他一起解决出现的异常的同时,也初窥一下使用Apache Common Email组件进行邮件发送. 二.Java发送邮件的注意事项 1.不同的邮箱有不同的支持协议,比如有些只支持SSL协议,有些只支持TLS协议,还有些同时支持SSL和TLS协议. 2.支持不同协议的邮箱,在使用Java发送邮件时要使用不同的方式发送,下面我会介绍基于SSL和TLS的两种实现方式. 附:常用邮箱的服务器(Smtp/POP3)地址和端口总结 三.代

Java之初印象

Java语言的跨平台性: Java语言的编程过程: 只要实现了特定平台下的解释器程序(JVM),Java字节码就能通过解释器程序在该平台下运行,这是java跨平台的根本,当前并不是在所有平台下都有相应的Java解释器程序,这也是Java并不是在所有平台下都能运行的原因,它只能在实现了Java解释器程序(JVM)的平台下运行 另: Java兼顾解释性与编译性语言的特点: JAVA源文件—>.class字节码文件 (编译型) .class文件在OS上运行的过程则是解释型的(JVM充当了解释器的作用)

Java学习—初认识

一.常见的一些DOS命令 dir:列出当前目录下的文件及文件夹. md:创建目录. rd:删除目录. cd:进入指定目录. cd..:退回到上一级目录. cd/:退回到根目录. del:删除文件. exit:退出DOS命令. 二.JAVA语言的环境搭建 1.JRE(Java Runtime Environment):Java运行环境. 它包括Java虚拟机和Java程序所需的核心类库等. 2.JDK(Java Development Kit):Java开发工具包. 它是提供给开发人员使用的,其中

我对JAVA的初认知

一.Java创建史: Java语言设计始于1991年,SUN公司想在消费类电子产品方面寻求市场,成立了由james  Gosling领导的Green开发小组,首要目标是编写可内嵌于家用小型电器设备内部的软件,使得机器更聪明,更具有人工智能.  开始时Green小组采用C++来编写,后来发现C++并不适合这类的任务.因为C++常会有使系统失效的程序错误,尤其是内存管理和指针操作,常产生很多bugs.设想如果一台烤面包机上的程序有错误,可能会使面包机烧毁,甚至更严重的会产生爆炸.  所以为了解决所遇

JAVA 8 初体验

Java 8 发布两个多月了,更新了一些特性,其中有接口中可以有默认的实现,lambda表达式.重复注解.时间等等. 今天先探究一下这新增的lambda 表达式功能特性,其他的日后待解. 先来看一个例子,以往版本的实现方法: Runnable oldRunnable = new Runnable() { @Override public void run() { System.out.println("hello,I am panpan"); } }; oldRunnable.run(

Java 之初

省赛结束之后有相当长一段空闲时间,于是就想先提前自学一点Java语言的知识,在这里纪录一下学习过程,希望能给自学Java的同学提供一点小帮助!(当然,也能方便我以后的复习用^_^) 在学习过程中有什么问题 --- We can discuss learning together ! E-maill : [email protected] QQ : 1033056118

java设计师初入职场,如何站稳脚跟

本文内容一共由3部分展开 a:新人如何快速融入团队 b:如何在职场中提升自己影响力 c:如何规进行职业规划 a:如何快速融入团队 能在层层选拔下进入公司,说明你工作的能力还是得到公司的认可,不过这只是万里长征第一步,接下来你将面对一个全新的环境,全新的团体,在这里大家各司其职,定位明确.如果你还是像在大学中自由浪漫,碰壁的机会非常大,那如何做到快速融入团队呢 首先 心态上,要学会欣赏别人,这个世界上形形色色的人都有,无所谓好坏,但是有趣和没趣是能够分辨的到的,自己不要先设定一个限制:我只交这类朋

Java爬虫初体验

年关将近,工作上该完成的都差不多了,就剩些测试完改改的活,上午闲着就接触学习了一下爬虫,收益还是有的,纠结了很久的正则表达式终于搞得差不多了,Java的Regex和JS上还是有区别的,JS上的"\w"Java得写成"\\w",因为Java会对字符串中的"\"做转义,还有JS中"\S\s"的写法(指任意多的任意字符),Java可以写成".*" 博主刚接触爬虫,参考了许多博客和问答贴,先写个爬虫的Overvie

新兵日记---java语法初体验

刚刚结束了java语法的学习,和之前学习的c++做一下对比. 1. 主要用途方面 java 适合待在服务器里,适合于后端开发,尤其是Web后端 ,有各种成熟的框架 , 有健全的生态环境. 手机领域,大数据领域等等 c++ 原本是想着做GUI, 结果发现MFC早就衰落,  GUI逐渐脚本化. c++用于底层开发,高性能领域 ,如游戏服务器后台,游戏开发,图像,流视频,引擎,底层通信等等 2.初始java语法 java语法比c++简单,提供了健全的内置类,如:String,StringBuffer.

JAVA的初体验

jdk的地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html 第一步:找到相应的JAVA SE版本,点击download 第二步:同意,并下载相应版本 下载慢的请到我百度云下载: 链接:https://pan.baidu.com/s/1_rdWVB0G8b0tvcpsrXcq8Q 提取码:d8pc 第三步:jdk的安装 1.运行,下一步 2.目标文件夹,选择安装目录,下一步 3.安装完成 4.添加系统环境变量