Servlet——HTTP介绍(帅气、漂亮的都会点赞的哦!!!)

╰半夏微凉° 2022-11-14 13:27 117阅读 0赞

文章目录

  • 前言
  • 一、HTTP协议简绍
  • 二、HTTP工作原理
  • 三、HTTP请求消息结构
  • 四、HTTP协议常见状态
  • 五、使用程序获取网页内容显示(代码演示)
  • 小结

前言

  • 本文主要简绍的内容是:
    1、什么是http协议
    2、http的工作原理
    3、http请求消息结构
    4、http协议常见状态

一、HTTP协议简绍

http 的英文全称是Hyper Text Transfer Protocol(超文本传输协议),是用于万维万维网服务器传输超文本,到本地浏览器的传输协议。
http是一个基于TCP/IP通信来传递数据(HTML文件,图像文件,查询结果等)的协议。默认端口号:80
http请求方法有:GET、POST、PUT、OPTIONS、HEAD、DELETE、TRACE、CONNECT八种请求方式,其中GET、POST是最为常用的两种,http是一种纯文本的无状态协议

关于TCP/IP通信原理可以看看下面这两篇文章帮助理解
Java网络编程——UDP通信原理
Java网络编程——TCP通信原理

二、HTTP工作原理

HTTP协议工作于客户端——服务端架构之上,浏览器作为HTTP客户端URL向向HTTP服务端即Web服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息(Web服务器有Apache、Tomcat、IIS)

三、HTTP请求消息结构

在这里插入图片描述

四、HTTP协议常见状态






















200 一切正常
301 资源(网页等)被永久转义到其他URL
404 资源找不到(先检查一下所写路径是否正确)
500 服务器内部错误

五、使用程序获取网页内容显示(代码演示)

代码如下(示例):

  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.io.PrintWriter;
  4. import java.net.Socket;
  5. public class Test {
  6. public static void main(String[] args) throws Exception {
  7. // 创建服务器连接
  8. Socket socket = new Socket("www.baidu.com",80);
  9. PrintWriter out = new PrintWriter(socket.getOutputStream());
  10. // 发送HTTP请求
  11. out.println("GET / HTTP/1.1");
  12. out.println();
  13. out.flush();
  14. //由于是文字所以采用效率较高的字节流BufferedReader来读入数据
  15. BufferedReader read = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  16. String string = "";
  17. while((string=read.readLine())!=null) {
  18. System.out.println(string);
  19. }
  20. // 关闭资源
  21. read.close();
  22. out.close();
  23. socket.close();
  24. }
  25. }

代码如下(输出(截取部分)):

  1. HTTP/1.1 200 OK
  2. Accept-Ranges: bytes
  3. Cache-Control: no-cache
  4. Connection: keep-alive
  5. Content-Length: 14615
  6. Content-Type: text/html
  7. Date: Mon, 29 Mar 2021 10:59:01 GMT
  8. P3p: CP=" OTI DSP COR IVA OUR IND COM "
  9. P3p: CP=" OTI DSP COR IVA OUR IND COM "
  10. Pragma: no-cache
  11. Server: BWS/1.1
  12. Set-Cookie: BAIDUID=B572BCA1C469DBBD32DC3AFD58FB2530:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
  13. Set-Cookie: BIDUPSID=B572BCA1C469DBBD32DC3AFD58FB2530; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
  14. Set-Cookie: PSTM=1617015541; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
  15. Set-Cookie: BAIDUID=B572BCA1C469DBBDDC0C7DE37D9452DF:FG=1; max-age=31536000; expires=Tue, 29-Mar-22 10:59:01 GMT; domain=.baidu.com; path=/; version=1; comment=bd
  16. Traceid: 161701554103215488108987581794662720684
  17. Vary: Accept-Encoding
  18. X-Ua-Compatible: IE=Edge,chrome=1
  19. <!DOCTYPE html><!--STATUS OK-->
  20. <html>
  21. <head>
  22. <meta http-equiv="content-type" content="text/html;charset=utf-8">
  23. <meta http-equiv="X-UA-Compatible" content="IE=Edge">
  24. <link rel="dns-prefetch" href="//s1.bdstatic.com"/>
  25. <link rel="dns-prefetch" href="//t1.baidu.com"/>
  26. <link rel="dns-prefetch" href="//t2.baidu.com"/>
  27. <link rel="dns-prefetch" href="//t3.baidu.com"/>
  28. <link rel="dns-prefetch" href="//t10.baidu.com"/>
  29. <link rel="dns-prefetch" href="//t11.baidu.com"/>
  30. <link rel="dns-prefetch" href="//t12.baidu.com"/>
  31. <link rel="dns-prefetch" href="//b1.bdstatic.com"/>
  32. <title>百度一下,你就知道</title>
  33. <link href="http://s1.bdstatic.com/r/www/cache/static/home/css/index.css" rel="stylesheet" type="text/css" />
  34. <!--[if lte IE 8]><style index="index" >#content{ height:480px\9}#m{ top:260px\9}</style><![endif]-->
  35. <!--[if IE 8]><style index="index" >#u1 a.mnav,#u1 a.mnav:visited{ font-family:simsun}</style><![endif]-->
  36. <script>var hashMatch = document.location.href.match(/#+(.*wd=[^&].+)/);if (hashMatch && hashMatch[0] && hashMatch[1]) { document.location.replace("http://"+location.host+"/s?"+hashMatch[1]);}var ns_c = function(){ };</script>
  37. <script>function h(obj){ obj.style.behavior='url(#default#homepage)';var a = obj.setHomePage('//www.baidu.com/');}</script>
  38. <noscript><meta http-equiv="refresh" content="0; url=/baidu.html?from=noscript"/></noscript>
  39. <script>window._ASYNC_START=new Date().getTime();</script>
  40. </head>

小结

其实上面这个程序严格意义上来讲一点都不严谨,还是差很多东西,各种参数都没有用到,但是仅仅只是实例那是足够的,重点不在这个只是让大家对网络请求有一个基本的了解,大餐还在后面。

发表评论

表情:
评论列表 (有 0 条评论,117人围观)

还没有评论,来说两句吧...

相关阅读

    相关 写一个帅气页面

    写一个帅气的页面 1. 首先,在设计布局时要注意美观,可以使用视觉对比度强的配色方案。 2. 要选择清晰、简洁的字体,注意字体大小、颜色与背景的搭配。 3. 使用大图片

    相关 Axure制作

    最近,做了一个关于知乎的原型,制作了关于点赞的模块,如果你有兴趣的话,就接着往下读吧 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_

    相关 自我介绍

    2016035107229;我是王菊哦;我的爱好有很多最喜欢的是ui设计哦; 我的码云个人主页是https://gitee.com/jbbrnbs/events; 我的第一