zoukankan      html  css  js  c++  java
  • Http权威指南(一)---读书笔记

     概述

    最简单的的资源是web服务器文件系统中的静态文件。当然可以上动态,但要经过网关?(不确定) 见图:

     

    URI(uniform Resource Identifier) 同一资源标识符:类比邮政地址

    URI可以有两种格式 1.URL(同一资源定位符) 2.URN

    (1) URL:分为三个部分,1.协议(http://)2.地址(www.baidu.com)3.特定资源:/1.pic

    (2) URN:开发阶段

    常见的HTTP方法:

       

    协议格式

        

      注:一个“web页面”通常不是单个资源,而是一组资源的集合。

    web结构组件

    (1)代理:
        

    (2)缓存或称代理缓存:
        

    (3)网关,网关是一种特殊的服务器,作为其他服务器的中间实体使用:
        

    (4)隧道,隧道建立后,会在两条连接之间对原始数据进行盲转发:
        

    (5)Agent代理,web浏览器就是一个agent代理:
        

    URL和资源

    URL组成

        <scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag> ---(1)

        

         注:上图是一个常见URL组成。下面是(1)各个组件的说明:
        

        分组件注意点:
        (1)http://大小写不敏感

        (2)URL上添加附件信息的情况:ftp://prep.ai.mit.edu/pub/gnu;type=d;graphics=true
        (3)包含查询字符串的情况:http://www.joes.../..check.cgi?item=1224
        (4)片段:http://www.joes..../tools.html#drills,注意web浏览器并不会将片段发送给服务器:
        
      

    三种URL


        

        这边解释了将相对URL转为绝对URL的算法:

        (1)有一段HTML代码片段:
     

        (2)根据算法

        

          相应的具体描述:
     

    URL使用的编码机制

        URL为了适应不同的编码,提供转义功能:

     
        注:保留部分用于特殊符号,如:%,#...

    常见的web方案:

        (1)http:
           http://www.baidu.com,默认端口80
        (2)https:

           https://bing.com,默认端口443 (同http结构一致,区别在于提供端到端的加密机制)

        (3)mailto:E-main地址

           mach@163.com

        (4)ftp:

       ftp://<user>:<password>@<host>:<port>/<path>;<params>

        (5)rtsp,rtspu:Real Time Streaming Protocol

           rtsp/rtspu://<user>:<password>@<host>:<port>/<path>

        (6)file:

       file://Office/policies/fun.doc

        (7)news:注意,它们是位置无关的,意思是可以不依赖于一台的源服务器

       news:rec.arts.startrek
       (8)telent:

       telnet://<user>:<password>@<host>:<port>/ 默认端口23

    HTTP报文

    一个完整的简单的HTTP事物:

       

    常见的HTTP方法:

     

        常见方法解析:
        (1)Get:安全方法(不对服务端的结果产生影响(特指一般)如果程序员想改变点什么...)
       

        (2)Head:安全方法,使用Head很重要的一点就是可以获取文件的长度
     

        (3)Put:上传文件
       

        (4)Post:协议交互一般使用Post
     

        (5)Trace:主要用于诊断
     
        (6)Options:询问当前服务器支持的类型

     

        (7)Delete: 删除,注意服务器可以不执行此操作

        

        (8)扩展方法:暂略

    状态码:

        

        注:上图为状态码的简单分类

        部分状态码介绍:

        (1)100 Continue状态码:
      发生情况:客户端需要发送主体到服务器上,但不清楚服务器是否能解析该主体,所以客户端
             选择先发送一个协议给服务端,服务端如果接收到相应协议,就应该Respone给客户端。

        (2)关于300~399重定向状态码:

        

    报文首部(头)

        一、通用首部 

        (1)信息:

        

        (2)缓存:

        

        二、请求首部

        (1)信息:

     

        (2)Accept:

        

        (3)条件请求:

        

        (4)安全请求:

        

        (4)代理请求:

        

        三、响应首部
        (1)信息性:

        

        (2)协商:

        

        (3)安全:

        

        四、实体首部

        (1)信息:

        

        (2)内容:

        

        (3)缓存:

        

    祝:玩得愉快!
  • 相关阅读:
    Android实战技巧之四十九:Usb通信之USB Host
    Netty in Action (七) 第三章节 Netty组件和设计
    打造敏捷的自组织团队
    Cocos2d-x移植到Android平台编译的两个文件Android.mk和Application.mk
    Codeforces Round #306 (Div. 2) (ABCE题解)
    事情非常重要却总不想開始怎么办
    <html>
    Android中Activity与Task相关的属性解析
    大话设计模式—策略模式
    android hander怎样避免内存泄露
  • 原文地址:https://www.cnblogs.com/hejianglin/p/5249134.html
Copyright © 2011-2022 走看看