zoukankan      html  css  js  c++  java
  • 图解HTTP(一)

    第一章 了解Web及网络基础
    1、为知识共享为规划Web,基本理念是:借助多文档之间相互关联(你中有我,我中有你)形成的超文本,连成客户想参阅的WWW(World Wide Web)。
    2、提出了3项WWW构建技术,分别是:把SGML(Standard Generalized Markup Language,标准通用标记语言)作为页面的文本标记语言的HTML;作为文档传递协议的HTTP;指定文档所在地址的URL(Uniform Resource Locator,统一资源定位符)。
    3、TCP/IP协议族按照层次分别分为以下4层:应用层、传输层、网络层和数据链路层(层次化是有好处的,只需关注变动的层以及各层之间的接口规划)
    4、IP地址指明了节点被分配的地址,MAC地址是指网卡所属的固定地址。
    5、ARP协议根据通信方的IP地址可以查出对应的MAC地址,DNS协议根据通信方的域名可以查出对应的IP地址。
    6、TCP协议三次握手:
    1 发送端发送SYN标识数据
    2 接收端发送SYN/ACK标识数据
    3 发送端再次发送ACK标识数据
    7、URI & URL,URI用字符串标识某一互联网资源,而URL表示资源的地点,可见URL是URI的子集。
    1 URI: mailto:cay@horstman.com
    2 URL: http://www.xxx.com/index.html
    8、绝对URI格式
    "http://user:password@www.example.com:80/index.html?uid=1#ch1"
    协议方案名 + 认证登录信息 + 服务器地址 + 端口号 + 文件路径 + 查询字符串 + 片段标识符
     
    第二章 简单的HTTP协议
    1、请求报文是由请求行(请求方法、请求URI、协议版本),可选的请求首部字段和内容实体构成的。
    2、响应报文是由响应行(协议版本、状态码、用以解释状态码的原因短语),可选的响应首部字段以及实体主体构成的。
    3、HTTP是不保存状态的协议,可以减少服务器的CPU以及内存资源的消耗。
    4、发送请求时,URI需要包含在报文内,如果不是访问特定资源而是对服务器本身发起请求,可以用一个“*”来代替请求URI。
    5、告知服务器意图的HTTP方法:
    1 GET 获取资源 POST 传输实体主体
    2 PUT 传输文件 HEAD 获得报文首部
    3 DELETE 删除文件 OPTIONS 询问支持的方法
    4 TRACE 追踪路径 CONNECT 要求用隧道协议连接代理
    6、每次请求都会发生三次握手进行TCP连接(避免首次请求延迟误连),持久连接(HTTP keep-alive)则节省通信量,只要任意一端没有明确提出断开连接,则保持TCP连接状态,减轻了服务器端的负载。
    7、管线化:持久连接使得多数请求以管线化方式发送成为可能,这样能够做到同时并行发送多个请求。
    8、Cookie:Cookie会根据从服务端发送的响应报文内的一个叫做Set-Cookie的首部字段,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。
     
    第三章 HTTP报文内的HTTP信息
    1、HTTP报文大致可分为报文首部和报文主体两块。
    2、报文主体与实体主体的区别:
    报文主体:通信中的基本单位,由8位组字节流组成
    实体主体:由实体首部和实体主体组成
    通常,报文主体等于实体主体。只有当传输中进行编码操作时,实体主体的内容发生变化,才导致它和报文主体产生差异。
    3、常用的内容编码:
    gzip (GNU zip)
    compress (UNIX系统的标准压缩)
    deflate (zlib)
    identity (不进行编码)
    4、HTTP协议采纳了多部份对象集合(MIME)
    1 multipart/form-data 在web表单文件上传时使用
    2 multipart/byteranges 状态码206响应报文包含了多个范围的内容时使用
    5、获取部分内容的范围请求(能从之前中断处恢复下载等),会用到首部字段Range来指定资源的byte范围。针对范围请求,响应会返回状态码为206 Partial Content的响应报文。
    6、内容协商返回最合适的内容,某些首部字段作为判断的基准(Accept,Accept-Encoding等)
    1 服务器驱动协商,以请求的首部字段为参考,在服务端自动处理
    2 客户端驱动协商,用户从浏览器显示的可选项列表中手动选择
    3 透明协商,a和b结合体,由服务端和客户端各自进行内容协商的一种方法
  • 相关阅读:
    嵌入式linux驱动开发之点亮led(驱动编程思想之初体验)
    嵌入式Linux驱动开发之helloword心得
    PJMEDIA之录音器的使用(capture sound to avi file)
    PJMEID学习之视频的捕捉与播放
    PJSIP-PJMEDIA【使用pjmedia 播放wav格式的音乐】
    PJSIP-PJLIB-Socket
    PJSIP-PJLIB(samples) (the usage of the pjlib lib) (eg:string/I/O)
    Start with PJSIP on windows
    Android实际开发之网络请求组件的封装(OkHttp为核心)
    Android实际开发中的首页框架搭建(二、首页框架实现)
  • 原文地址:https://www.cnblogs.com/liutie1030/p/7248579.html
Copyright © 2011-2022 走看看