一、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 ●空行
●可选的消息体 请求行和标题必须以
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
|