javaweb基础课时3http与servlet 下载本文

一、http协议

超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。

HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。

发出的请求信息包括以下几个:

●请求行,例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif这个文件。 ●(请求)头,例如Accept-Language: en ●空行

●可选的消息体 请求行和标题必须以作为结尾(也就是,回车然后换行)。空行内必须只有而无其他空格。在HTTP/1.1协议中,所有的请求头,除post外,都是可选的。

1.了解HTTP协议:

在myeclipse里面新建一个web工程, 新建一个test.java:

import java.io.BufferedReader; import java.io.IOException;

import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket;

public class test {

public static void main(String args[]) throws IOException{ Socket s=new Socket(\,8080); //Socket连到哪儿了?Tomcat的Server上了。

PrintWriter pw=new PrintWriter(new OutputStreamWriter(s.getOutputStream()));

//得到Socket的输出流,输出到Tomcat的Server上。 pw.println(\);

//get方式或者post方式,注意Get后面的/表示http://127.0.0.1:8080/最后的斜杠

pw.println(\);

//一般指域名

pw.println(\); //反馈的内容类型是html类型 pw.println();

//空行,表示发送的东西已经结束 pw.flush();

BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream())); } }

//请求之后的反馈,通过输入流读取

String str=\;

while((str=br.readLine())!=null)

System.out.println(str);//逐行输出 br.close(); pw.close(); s.close();

运行该程序,得到的结果为:

HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Content-Type: text/html;charset=ISO-8859-1 Transfer-Encoding: chunked

Date: Sun, 06 Oct 2013 05:49:42 GMT 2000

Apache Tomcat/5.5.30