1.TCP/IP协议簇一共分为七层html
应用层:Http Ftp 等等web
表示层:json
会话层:浏览器
传输层: TCP UDP缓存
网络层:IP协议, ICMP协议, IGMP协议安全
链路层:设备驱动程序以及接口卡服务器
物理层:网络
既然协议簇命名为:Tcp/Ip 核心就是TCP和IP架构
IP协议:是无链接的网络协议,主要是处于网咯层的IP协议提供传输方式不可靠的,它只承诺尽量地将数据报发送出去,但不保证发送的数据报可以成功的抵达目的地。IP协议不可靠性还体如今它不能检测数据在传输过程当中是否发生改变.app
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)是一个数学上的概念,在这里标识发送一次或屡次请求引发的边界效应是一致的。