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
 AppNameWEB-INF
 AppNameWEB-INFWeb.xml
 AppNameWEB-INFclasses

   

原文地址:https://www.cnblogs.com/chenyangpeng/p/5591958.html