`

Http 协议详解 学习笔记

阅读更多


本文查阅方法:
    1、查阅目录 —— 查阅本文目录,确定想要查阅的目录标题
    2、快捷“查找” —— 在当前浏览器页面,按键 “Ctrl+F” 按键组合,开启浏览器的查找功能,
             在查找搜索框中 输入需要查阅的 目录标题,便可以直接到达 标题内容 的位置。
    3、学习小结 —— 文中的学习小结内容,是笔者在学习之后总结出的,开发时可直接参考其进行应用
开发的内容, 进一步加快了本文的查阅 速度。(水平有限,仅供参考。)

 

 

 


 

 

 

本文目录 

 

    学习小结

 

    1、什么是HTTP协议 

 

    2、HTTP协议简介

 

    3、HTTP1.0和HTTP1.1的区别

 

    4、HTTP请求 概述

 

    5、HTTP请求的细节——请求行

 

    6、HTTP请求的细节——常用消息头

 

    7、HTTP响应 概述

 

    8、HTTP响应的细节——状态行

 

    9、HTTP响应细节——常用响应头 

 

    10、Http请求常用响应头信息范例Demo 

 

    11、HTTP其他实用头字段及其Demo 

 

 

 


 

学习小结 

 

(1)HTTP请求:请求行常用两种请求方式: 

 

      a. Get方式:数据在URL地址后以“?”的形式附带,多个数据用“&”分隔,数据容量小于1k;

 

      b. Post方式:数据在 实体 部分, 数据容量无限制。

 

 

 

(2)HTTP请求常用消息头及Demo

 

        Accept: text/html,image/*    

 

        Accept-Charset: ISO-8859-1

 

        Accept-Encoding: gzip,compress

 

        Accept-Language: en-us,zh-cn 

 

        Host: www.it315.org:80

 

        If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT

 

        Referer: http://www.it315.org/index.jsp

 

        User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)

 

        Cookie:

 

        Connection: close/Keep-Alive   

 

        Date: Tue, 11 Jul 2000 18:23:51 GMT

 

 

 

(3)HTTP响应:状态行 常用状态码

 

      200:请求响应正常;

 

      302:要浏览器去找响应群殴Location头信息所标注的资源;

 

      304/307:要浏览器去拿浏览器缓存数据;

 

      404:找不到资源,建议检查访问路径;

 

      500:服务器处理访问时,出现问题,无法响应。

 

 

 

(4)HTTP响应常用消息头及Demo

 

        Location: http://www.sina .org/index.jsp 

 

        Server:apache tomcat

 

        Content-Encoding: gzip 

 

        Content-Length: 80 

 

        Content-Language: zh-cn 

 

        Content-Type: text/html; charset=GB2312 

 

        Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT

 

        Refresh: 1;url=http://www.sina.org

 

        Content-Disposition: attachment; filename=aaa.zip

 

        Transfer-Encoding: chunked  

 

        Set-Cookie:SS=Q0=5Lb_nQ; path=/search

 

        ETag: W/"7777-1242234904000"

 

        Expires: -1

 

        Cache-Control: no-cache  

 

        Pragma: no-cache   

 

        Connection: close/Keep-Alive   

 

        Date: Tue, 11 Jul 2000 18:23:51 GMT 

 

 

 

 

 

 

 


 

 

 

1、什么是HTTP协议 

 

    HTTP协议用于定义客户端与web服务器通迅的格式。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议就是用于定义通迅格式的协议。

 

    【技巧:安装IE浏览器插件HttpWatch,查看IE浏览器通过HTTP协议获取某个页面。可以使用telnet程序连上web服务器,并使用HTTP协议获取某个页面,快速了解 HTTP协议的作用。】

 

 

 


 

 

 

2、HTTP协议简介

 

    HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。 

 

    HTTP协议是学习JavaWEB开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更无法管理和维护一些复杂的WEB站点。

 

    HTTP协议的版本:HTTP/1.0、HTTP/1.1

 

 

 


 

 

 

3、HTTP1.0和HTTP1.1的区别

 

    在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。

 

    在HTTP1.1协议中,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。

 

    使用telnet举例说明。

 

    命令行:telnet localhost 8080

 

    【小知识:Telnet默认不回显数据,需要按键“Ctrl+]”,再按回车键,就会启动数据回显,就可以看到输入的字符】

 

    问题:一个web页面中,使用img标签引用了三幅图片,当客户端访问服务器中的这个web页面时,客户端总共会访问几次服务器,即向服务器发送了几次HTTP请求。(4次)

 

    【小知识:页面优化技术原则之一:尽量减少浏览器请求资源的次数】

 


 

 

 

4、HTTP请求 概述

 

    客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。一个完整的HTTP请求包括如下内容:

 

  一个请求行、若干消息头、以及实体内容,如下所示 :

 



 

 


 

  

 

5、HTTP请求的细节——请求行 

 

    请求行中的GET称之为请求方式,请求方式有七种:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT。而常用的有两种: GET 方式、 POST 方式。用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为post,可通过更改表单的提交方式实现。

 

    不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上:

 

        a.如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,

 

            多个数据之间以&进行分隔,例如: GET /mail/1.html?name=abc&password=xyz HTTP/1.1

 

            GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。

 

        b.如请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据.

 

            Post方式的特点:传送的数据量无限制。

 


 

 

 

6、HTTP请求的细节——常用消息头

 

    用于HTTP请求中的常用头:告诉服务器,浏览器的当前工作环境信息。

 

      Demo样例:

 

        Accept: text/html,image/*    

 

        Accept-Charset: ISO-8859-1

 

        Accept-Encoding: gzip,compress

 

        Accept-Language: en-us,zh-cn 

 

        Host: www.it315.org:80

 

        If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT

 

        Referer: http://www.it315.org/index.jsp

 

        User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)

 

        Cookie:

 

        Connection: close/Keep-Alive   

 

        Date: Tue, 11 Jul 2000 18:23:51 GMT

 

     

 

    请求头详解:

 

        Accept: 用于告诉服务器,客户机所支持的数据类型

 

        Accept-Charset: 用于告诉服务器,客户机所采用的码表

 

        Accept-Encoding: 用于告诉服务器,客户机所支持的数据压缩格式

 

        Accept-Language: 用于告诉服务器,客户机的语言环境

 

        Host: 用于告诉服务器,客户机想访问服务器哪台主机

 

        If-Modified-Since: 用于告诉服务器,客户机对于资源的最后缓存时间,精确到秒级。

 

        Referer: 用于告诉服务器,客户机是从哪个页面去访问服务器的  (防盗链)

 

        User-Agent: 用于告诉服务器,客户机的机器环境(例如所使用的操作系统,浏览器版本号)

 

        Cookie:客户端通过这个头字段,可以带一些数据给服务器

 

        Connection:客户端通过这个头字段告诉服务器,请求完成后,是保持链接还是关闭链接

 

     

 

 

 


 

 

 

7、HTTP响应 概述

 

    一个HTTP响应代表服务器向客户端回送的数据,它包括:

 

    一个状态行、若干消息头、以及实体内容 。 

 

 


 

 

 

 


 

 

 

8、HTTP响应的细节——状态行

 

    状态行

 

      格式: HTTP版本号 状态码 原因叙述<CRLF>

 

      举例:HTTP/1.1 200 OK

 

    状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示:

 



 

 

 

 


 

 

 

9、HTTP响应细节——常用响应头 

 

    HTTP请求中的常用响应头

 

     Demo样例:

 

        Location: http://www.sina .org/index.jsp 

 

        Server:apache tomcat

 

        Content-Encoding: gzip 

 

        Content-Length: 80 

 

        Content-Language: zh-cn 

 

        Content-Type: text/html; charset=GB2312 

 

        Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT

 

        Refresh: 1;url=http://www.sina.org

 

        Content-Disposition: attachment; filename=aaa.zip

 

        Transfer-Encoding: chunked  

 

        Set-Cookie:SS=Q0=5Lb_nQ; path=/search

 

        ETag: W/"7777-1242234904000"

 

        Expires: -1

 

        Cache-Control: no-cache  

 

        Pragma: no-cache   

 

        Connection: close/Keep-Alive   

 

        Date: Tue, 11 Jul 2000 18:23:51 GMT

 

      

 

    响应头详解

 

        Location:这个头通常配合302状态码使用,服务器使用这个头告诉浏览器去找谁【范例见Demo1】

 

        Server:服务器通过这个头告诉浏览器,服务器的类型

 

        Content-Encoding: 服务器通过这个头告诉浏览器,数据的压缩格式(gzip) 【范例见Demo2】 

 

                一定要压缩服务器返回数据,既可提升服务器性能,又可大大减少服务器网络流量费用

 

        Content-Length:服务器通过这个头告诉浏览器,回送数据的长度【范例见Demo2】 

 

        Content-Language: 服务器通过这个头告诉浏览器,回送数据的语言;  

 

        Content-Type: 服务器通过这个头告诉浏览器,回送数据的类型【范例见Demo3】 

 

                  对于响应返回图片、视频、音频等数据类型时,很重要。

 

        Last-Modified: 服务器通过这个头告诉浏览器,数据的最后修改时间,精确到秒级。

 

        Refresh:服务器 告诉浏览器,多长时间定时刷新或定时转向其他页面 (论坛刷新)【范例见Demo4】 

 

        Content-Disposition: 控制浏览器以下载方式打开回送的数据【范例见Demo5】 

 

                    对于响应返回图片、视频、音频等数据类型时,可能会用到。

 

        Transfer-Encoding: 服务器通过这个头告诉浏览器,数据是以块方式回送的(用的少)

 

       

 

        Expires:控制浏览器缓存数据的时间(-1或0,代表控制浏览器不要缓存)

 

              时间+数据:保存该数据缓存的时间,eg:2012 12 12 (1.html)     

 

        Cache-Control: no-cache  

 

        Pragma: no-cache  

 

        以上三个头一起用,就可以控制所有的浏览器不要缓存数据 

 

        ETag:缓存相关,服务器给每一个网页都生成一个编码,用来进行比对,以配合304或307通知浏览器是否使用缓存的数据,精确到毫秒级。(一般的服务器不需要这么严谨)

 

 

 


 

 

 

10、Http请求常用响应头信息范例Demo 

 

    public class ServletDemo1 extends HttpServlet {

 

      public void doGet(HttpServletRequest request, HttpServletResponse response)

 

          throws ServletException, IOException {

 

        test5(response);

 

      }

 

     

 

    【范例Demo1:Location   】 

 

        //指示浏览器重新定向

 

      public void test1(HttpServletResponse response){

 

        response.setStatus(302);

 

        response.setHeader("location", "/day04/index.jsp");

 

      }

 

     

 

    【范例Demo2:Content-Encoding   】 

 

         // 演示数据压缩

 

      public void test2(HttpServletResponse response) throws IOException{ 

 

        String data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";    //数据太小可能会压缩后反而更大,当数据大时压缩效果才显著。

 

       

 

       System.out.println("原始数据的大小:" + data.getBytes().length);

 

         //下面代码是压缩数据。GZIPOutputStream 是JDK自带的gzip压缩工具类,需要将数据写入流中

 

        ByteArrayOutputStream bout = new ByteArrayOutputStream();

 

        GZIPOutputStream gout = new GZIPOutputStream(bout);

 

        gout.write(data.getBytes());

 

        gout.close();

 

     

 

        byte gzipData[] = bout.toByteArray();   //获得gzip压缩后的数据

 

        response.setHeader("Content-Encoding", "gzip");  //告诉浏览器压缩数据的格式

 

        response.setHeader("content-length", gzipData.length+"");  //数据大小

 

        response.getOutputStream().write(gzipData);  //返回浏览器

 

      }

 

     

 

    【范例Demo3:Content-Type   】 

 

     //content-type头字段的作用

 

      public void test3(HttpServletResponse response) throws IOException{ 

 

            String path = this.getServletContext().getRealPath("/02.jpg");

 

            FileInputStream in = new FileInputStream(path);

 

            byte buffer[] = new byte[1024];

 

            int len = 0;  

 

            response.setHeader("content-type", "image/jpeg");//此语句要在写数据前执行

 

            OutputStream out = response.getOutputStream();

 

            while((len=in.read(buffer))>0){

 

                out.write(buffer, 0, len);

 

            }

 

            out.close();

 

            in.close();

 

      }

 

     

 

    【范例Demo4:Refresh  】 

 

      //控制浏览器定时刷新

 

      public void test4(HttpServletResponse response) throws IOException{ 

 

        response.setHeader("refresh", "3;url='http://www.sina.com'");

 

        response.getWriter().write("你的页面  3 秒钟后将会转向新浪首页");

 

      }

 

     

 

     【范例Demo5:Content-Disposition  】 

 

      //控制浏览器下载

 

      public void test5(HttpServletResponse response) throws IOException{ 

 

        response.setHeader("content-disposition", "attachment;filename=02.jpg"); 

 

        String path = this.getServletContext().getRealPath("/01.jpg");

 

        FileInputStream in = new FileInputStream(path);

 

        byte buffer[] = new byte[1024];

 

        int len = 0;

 

        OutputStream out = response.getOutputStream();

 

        while((len=in.read(buffer))>0){

 

          out.write(buffer, 0, len);

 

        }

 

        out.close();

 

        in.close(); 

 

      }

 

     

 

      public void doPost(HttpServletRequest request, HttpServletResponse response)

 

          throws ServletException, IOException {

 

        doGet(request, response);

 

      } 

 

    }

 


 

 

 

11、HTTP其他实用头字段 及其Demo 

 

      HTTP请求头字段

 

        Range头指示服务器只传输一部分Web资源。这个头可以用来实现断点续传功能。

 

            Range字段可以通过三种格式设置要传输的字节范围:

 

                Range: bytes=1000-2000   :  传输范围从1000到2000字节。

 

                Range: bytes=1000-       :  传输Web资源中第1000个字节以后的所有内容。

 

                Range bytes=1000          :  传输最后1000个字节。

 

        由于浏览器并不支持该头字段,所以需要自己写客户端程序来实现该字段的功能。

 

    HTTP响应消息头字段

 

        Accept-Ranges:这个字段说明Web服务器是否支持Range,

 

            支持则返回Accept-Ranges: bytes,

 

            如果不支持,则返回Accept-Ranges: none.

 

        Content-Range:指定了返回的Web资源的字节范围。这个字段值的格式是:

 

            例子: Content-Range:1000-3000/5000

 

 

 

    Demo样例:

 

    public class DownLoad {

 

      public static void main(String[] args) throws Exception { 

 

        URL url = new URL("http://localhost:8080/day04/1.txt");

 

        HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 

 

        conn.setRequestProperty("Range", "bytes=6-");

 

        FileOutputStream out = new FileOutputStream("c:\\1.txt",true);

 

        InputStream in = conn.getInputStream();

 

        int len = 0;

 

        byte buffer[] = new byte[1024];

 

        while((len=in.read(buffer))>0){

 

          out.write(buffer, 0, len);

 

        }

 

        in.close();

 

        out.close();

 

      } 

 

    }

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 57.5 KB
  • 大小: 58.4 KB
  • 大小: 77.9 KB
2
0
分享到:
评论
1 楼 w287707678 2014-04-17  
mark!

相关推荐

    TCPIP协议详解学习笔记.pdf

    TCPIP协议详解学习笔记.pdf

    TCP/IP协议技术详解学习笔记

    TCP/IP协议技术详解学习笔记,内容丰富详尽,通俗易懂。

    TCPIP详解学习笔记

    学长精心写的TCP/IP网络协议,清晰明了,新手宜看。

    TCP-IP详解学习笔记

    TCP/IP详解,学习笔记,是初学者对TCP/IP协议了解的很好资料!

    TCPIP详解学习笔记.doc

    数据链路层,IP协议,ARP协议,RARP协议,ICMP协议,ping和Traceroute,UDP,DNS等

    TCP/IP学习笔记和协议详解

    这篇文档主要是针对TCP/IP的协议进行详细的介绍,有笔者的学习心得!

    TCPIP详解》学习笔记

    TCPIP详解 笔记 详细描述了TCP/IP的相关知识,通过阅读此文档,你可以充分理解协议,并应用于实践中

    tcp/ip详解前3章学习笔记

    tcp/ip详解前3章学习笔记 osi七层模型 tcp/ip 4层协议系统 ip 路由选择

    RapidIO学习笔记--互连协议的介绍

    RapidIO互连架构是一个开放的标准,满足了嵌入式基础设施在应用方面的广泛需要。可行的应用包括连接多处理器、存储器、网络设备上的存储器映射I/O器件、存储子系统和通用计算平台。

    SPI协议详解(Standard SPI、Dual SPI和Queued SPI(超详细)

    spi协议【SPI协议详解(Standard SPI、Dual SPI和Queued SPI(超详细)简介】 内容概要: 本文为初学者提供了一个全面的学习指南,通过通俗易懂的语言和详细的代码注释,介绍了SPI协议的基本概念及其在实际应用中的...

    Python树莓派学习笔记之UDP传输视频帧操作详解

    主要介绍了Python树莓派学习笔记之UDP传输视频帧操作,结合实例形式详细分析了Python树莓派编程中使用UDP协议进行视频帧传输的相关操作技巧与注意事项,需要的朋友可以参考下

    RTSP协议简介

    RTSP RTP 协议 RTSP协议详解中文版 RTSP协议学习笔记

    kali学习笔记1.pdf

    笔记记录了详细的从网络扫描,信息收集(被动信息收集技术讲解,主动信息收集(各层协议的主动扫描方法{从网络层到应用层},nmap扫描器的使用全参数讲解),系统漏洞扫描器缓...笔记还有第二章,可以直接搜索kali学习笔记2

    TCP-IP-Illustrated-vol1:《 TCPIP详解卷1:协议》笔记

    TCP-IP-Illustrated-vol1:《 TCPIP详解卷1:协议》笔记

    Dos学习笔记(2)

    以前在学习DOS命令的时候整理出来的笔记,上传供各位同勉,希望能帮助新手少走一些弯路。 一.FSUTIL命令详解 二.fixboot 、fixmbr与fdisk /mbr的区别 三.IPConfig命令详解 四. DNS和WINS 五. Telnet Ttlntsvr ...

    IPFSNotebook:IPFS学习笔记

    IPFS学习笔记 版本: 本文档持续更新...... 即将补充Bittorrent和Merkle DAG详细内容 参考: 戴嘉乐:详解IPFS的本质 IPFS白皮书-Juan Benet P2P中DHT网络介绍 IPFS: BitSwap协议 IPFS+区块链系列 默克尔树 IPFS——它...

    LwIP协议栈源码详解.pdf

    最近一个项目用到 LwIP,恰好看到网上讨论的人比较多,所以有了写这篇学习笔记的 冲动,一是为了打发点发呆的时间,二是为了吹过的那些 NB。往往决定做一件事是简单的, 而坚持做完这件事却是漫长曲折的,但终究还是...

    华为工程师总结linux笔记.pdf

    中级包括:HTTP 协议 详解、Apache WEB 服务器企业实战、MySQL 数据库服务器企业实战、LAMP 企业架 构实战、Zabbix 分布式监控系统实战、Nginx 高性能 WEB 服务器实战等。高级部分包含:Linux 性 能优化、大数据量...

    V4L2学习笔记及图像视频采集基本流程

    linux下的V4L2协议的介绍,如何使用这个协议编写程序进行视频的采集。

Global site tag (gtag.js) - Google Analytics