您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > JavaHTTP协议编程实验报告
广州大学学生实验报告开课学院及实验室:电子楼418A室2014年11月27日学院计算机科学与教育软件学院年级、专业、班网络工程113班姓名小玉学号实验课程名称网络编程成绩实验项目名称HTTP协议编程指导老师樊志平一、实验目的WEB服务器也称为服务器,主要功能是提供网上信息浏览服务,是目前使用最广泛的服务。HTTP协议是万维网中使用最广泛的协议,也是Web服务消息传递的主要传输协议。本实验通过设计和实现简单的WEB服务器和浏览器,使学生熟练掌握HTTP协议的编程,并对WEB服务器的工作原理有比较深入的了解。此外,本实验需要学生能结合TCP套接字编程、多线程编程、输入输出流编程和面向对象分析与设计技术加以解决实际问题,因此实验能提高学生综合运用所学知识并解决实际问题的能力。二、使用仪器、器材微机一台操作系统:WinXP编程软件:eclipse三、实验内容及原理实现简单的Web浏览器和web服务器。四、实验过程原始数据记录packageexperiment03;importjavax.swing.*;importjavax.swing.event.*;importjavax.swing.text.EditorKit;importjavax.swing.text.html.*;importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjava.net.*;importjava.util.*;publicclassHttpClientextendsJFrame{privateJPaneljpNorth=newJPanel();privateJLabellblAddress=newJLabel(请输入网址:);privateJTextFieldjtfAddress=newJTextField(http://);privateJButtonbtnConnect=newJButton(连接);privateJButtonbtnPrior=newJButton(后退);privateJButtonbtnNext=newJButton(前进);privateJPaneljpCenter=newJPanel();privateJEditorPanejepContent=newJEditorPane();privateJScrollPanejsp=newJScrollPane(jepContent);//记录历史网址ArrayListStringhistory=newArrayListString();privateintcurrentIndex=-1;publicHttpClient(){this.setLayout(newBorderLayout());this.add(jpNorth,BorderLayout.NORTH);jpNorth.setLayout(newFlowLayout());jpNorth.add(lblAddress);jtfAddress.setPreferredSize(newDimension(300,25));jpNorth.add(jtfAddress);jpNorth.add(btnConnect);jpNorth.add(btnPrior);jpNorth.add(btnNext);//设置内容区域this.add(jpCenter,BorderLayout.CENTER);jpCenter.setLayout(newBorderLayout());jpCenter.add(jsp,BorderLayout.CENTER);EditorKiteditKit=jepContent.getEditorKitForContentType(text/html);jepContent.setEditorKit(editKit);jepContent.setEditable(false);//设置事件处理程序btnConnect.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){try{if(jtfAddress.getText().trim().isEmpty())return;jepContent.setPage(jtfAddress.getText());history.add(jtfAddress.getText());currentIndex=history.size()-1;}catch(IOExceptione1){e1.printStackTrace();}}});//前进按钮事件btnNext.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){if(currentIndex==-1||currentIndex==history.size()-1)return;currentIndex++;try{jepContent.setPage(history.get(currentIndex));jtfAddress.setText(history.get(currentIndex));}catch(IOExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}}});//后退按钮事件btnPrior.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){if(currentIndex=0)return;currentIndex--;try{jepContent.setPage(history.get(currentIndex));jtfAddress.setText(history.get(currentIndex));}catch(IOExceptione1){e1.printStackTrace();}}});//设置超级链接jepContent.addHyperlinkListener(newHyperlinkListener(){@OverridepublicvoidhyperlinkUpdate(HyperlinkEvente){if(e.getEventType()==HyperlinkEvent.EventType.ACTIVATED){URLdest=e.getURL();try{jepContent.setPage(dest);history.add(jtfAddress.getText());currentIndex=history.size()-1;jtfAddress.setText(dest.toString());}catch(IOExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}}}});}publicstaticvoidmain(String[]args){HttpClienthttpClient=newHttpClient();httpClient.setSize(600,400);httpClient.setLocation(300,300);httpClient.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);httpClient.setTitle(HTTP浏览器);httpClient.setVisible(true);}}五、实验结果及分析HTTP是一种请求/响应式的协议。一个客户机与服务器建立连接后,发送一个请求给服务器;服务器接到请求后,给予相应的响应信息。当用户要访问网络中的某个网页时,大致要经过以下几个步骤:1.用户首先要确定网页文件所在的URL(统一资源定位符,也就是网页在网络上的家庭住址,通过这个地址就可以找到这个网页)如(域名服务器)发出请求,告诉DNS说:我要把地址,这里可以简单把DNS理解为一个字典,知道域名就可以知道域名对于的IP地址,他们有这个一个映射的关系3.DNS收到请求后就开始查询,查到后向浏览器返回结果。如域名为地址后,浏览器向IP地址为61.155.169.116的主机发出与端口号80建议一条TCP连接请求(HTTP协议是建立在传输层TCP的基础上的),80端口是服务器提供web服务的默认端口5.建立连接后,浏览器发出一条HTTP请求,如GET当域名为的服务器接受到请求后,向浏览器发送一个html文件7.文件发送完后,由服务器主动关闭TCP连接。8.浏览器接收传送来的页面并显示9.如果Html文件中包含图片,还要与服务器再次建立一个TCP连接,以便可以下载图片
本文标题:JavaHTTP协议编程实验报告
链接地址:https://www.777doc.com/doc-2878395 .html