第一章概述

1.TCP/IP协议簇一共分为七层

  应用层:Http  Ftp 等等

 表示层:

 会话层:

 传输层: TCP   UDP

 网络层:IP协议, ICMP协议,  IGMP协议

 链路层:设备驱动程序以及接口卡

 物理层:

既然协议簇命名为:Tcp/Ip 核心就是TCP和IP

IP协议:是无连接的网络协议,主要是处于网咯层的IP协议提供传输方式不可靠的,它只承诺尽可能地将数据报发送出去,但不保证发送的数据报能够成功的抵达目的地。IP协议不可靠性还体现在它不能检测数据在传输过程中是否发生改变.

TCP协议:建立在网络层之上的传输层解决网络层这两个问题; 是基于一个连接的传输协议,数据交换双方在进行报文传输之前需要建立连接,报文传输结束之后就关闭连接。

TCP 利用"接收确认"和"超时重传"机制确保数据能够成功抵达目的地.

HTTP :"超文本传输协议"是TCP/IP协议簇一部分;这是之前分成七层处于应用层,由于在传输层之上所以HTTP自然提供可靠数据传输的保障。

   IP协议利用IP地址定位数据报发送的目的地,而利用域名系统(DNS)可以实现域名与IP地址之间的转换;TCP协议利用端口(Port)标识应用程序,所以两个应用程序在使用TCP协议进行通信的时候必须确定双方的IP地址(或者域名)和端口号;

  HTTP默认端口:80

  HTTPS默认端口:443

2.web 资源

      媒体类型:数据处理必须依赖于一种已知的格式,所以将资源的形态以一种标准化的方式确定下来显得尤为重要,这个描述资源格式的标准称为媒体类型(MIME);

     几种常用的媒体类型为: 

        text/html:HTML格式的文本

       text/xml(application/xml):XML格式的文本

  text/json(application/json):JSON格式的文本

  image/gif(image/jpeg,image/png):GIF(JPEG,PNG)格式的图片

  audio/mp4(audio/mpeg,audio/vnd.wave):MP4(MPEG,WAVE)格式的音频文件

  video/mp4(video/mpeg,video/quicktime):mp4(MPEG,QUICKTIME)格式的视频文件

  MPEG:动态图像专家组

  QuickTime:是一款拥有强大的多媒体技术的内置媒体播放器

  URI 和URL ,URN

  URI:"统一资源标识",标识可操作的资源应该具有一个或多个唯一的标识;

  URL:"统一资源定位符",包含了标识符,还有具有定位的功能,可以用于描述资源的位置;一个完整的URL包含协议名称,主机名(ip地址或者域名),端口号,路径,查询字符串5个部分

  URN:"统一资源定位名称",它与资源位置无关,资源位置改变了其标志符依然不改变。

   HTTP 响应状态:

  100-199: 信息状态码

  200-299:成功状态码

  300-399:重定向状态码,代表需要客户端采取进一步的操作才能完成请求

  400-499:客户端错误代码,代表因客户端发生错误而妨碍了服务的处理

  500-599:服务端错误状态码,代表服务器在处理请求的过程中有错误或者异常发生。

 HTTP 报文

  客户端和web服务器在一次HTTP事务交换的消息称为HTTP报文;报文有三部分组成:

  起始行:代表HTTP报文的第一行文字,请求报文利用起始行标识采用的HTTP方法,请求URL和采用的HTTP的版本

      例如: GET  http://www.micosoft.com/en-us/       HTTP/1.1

      HTTP方法是:GET

      目标资源: http://www.micosoft.com/en-us/  

      协议版本:HTTP/1.1

  报头集合:HTTP报头的起始行后可以包含零个或多个报头字段;每个报头表现为一个键值对。  

    报头获得主机名称(Host)

    采用的缓存策略(Cache-ControI)

    浏览器相关信息(Uscr¨Agent)

    客户端支持的媒体类型(Accept)

    编码方式(Accept-Encoding)

    语言(AGcept-Language)

    字符集(Aooept-Charset)

  主体内容:代表报头集合结束标志的空行之后就是HTTP报文的主体部分;

  RESTful Wen APi

    REST不是一个标准,而是一个架构风格,与之对应的是传统的web service 采用的RPC架构风格。

    如果说RPC是一种面向操作的架构风格的话,REST就是一种面向资源的架构风格。

使用标准的HTTP方法

  GET:用于获取所需要的资源,服务器一般将对应的资源置于响应的主体部分返回客户端。

  HEAD:请求一般不是为了获取目标资源本身的内容,而是希望得到描述资源的元数据信息。服务器一般将对应资源的元数据置于响应的报头集合返回给客户端,所以这样的响应一般不具有主体部分。

  OPTIONS:请求一般是一种”探测“请求,其目的在于确定针对某个目标地址的只是请求应该具有这样的约束(比如应该采用怎样的HTTP方法或者必须携带怎样的自定义报头),然后根据其约束发送符合条件的请求。

  POST和PUT:均可以请求添加一个新的资源,但是两者的不同之处在于:前者一般不能决定标识添加资源最终采用的URL,即服务端最终为成功添加的资源指定URI;而后者,最终标识添加资源的URI是可以由请求者控制的。如果PUT提供的资源不存在,则做添加操作,否则做修改操作。 

  PATCH:如果需要进行"局部"修改,因为语义上讲是打补丁的意思。

  DELETE:删除

  GET,HEAD,OPTIONS均被认为是安全的方法,也被视为幂等方法。

  幂等性(indemoptent)是一个数学上的概念,在这里标识发送一次或多次请求引起的边界效应是一致的。

  

原文地址:https://www.cnblogs.com/jzhou/p/4867274.html