计算机网络体系结构的通信协议:
1.物理层:
以太网、调制调节器、电力线通信、SONET/SDH、光导纤维、同轴电缆、双绞线等。
2.数据链路层:
Wi-Fi(IEEE 802.11)、WiMAX(IEEE 802.16)、ATM、令牌环、PPP、L2TP、PPTP等
3.网络层协议:
IP(IPv4、IPv6)、ICMP、ICMPv6、IGMP、IS-IS、IPsec、ARP、RAPP等
4.传输层协议:
TCP、UDP、TLS、DCCP、SCTP、RSVP、OSPF等
5.应用层协议:
DNS、FTP、Gopher、HTTP、IMAP4、POP3、SIP、SSH、TELNET、RPC、SDP、SOAP、GTP等。
HTTP协议的4个关键点
- HTTP是建立在TCP/IP协议之上,面向应用层的超文本传输协议
- 它由请求和相应组成,完全符合标准的客户端服务器的请求响应模型
- 协议很轻便简单,并且请求与请求之间没有关联,是无状态性的协议
- 为了弥补这种无状态性,就需要使用HTTP协议的扩展Cookie等方式建立关联
请求报文
1.请求行(request line)
2.请求头部(request header)
3.请求主体(request body)
Accept
指定客户端能够接受的内容类型,内容类型的先后顺序表示客户端接受的先后顺序
比如:Accept:text/html,application/xml
Accept-Encoding
指定客户端浏览器可以支持的web服务器返回内容压缩编码类型
允许服务器在将输入内容发送到客户端以前进行压缩,以节约带宽。
比如:Accept-Encoding:gzip,deflate
Accept-Language
指定http客户端浏览器用来展示返回信息所先选择的语言
比如:Accept-Language:zh-cn,zh;q=0.5 后面的q表示权重
Connection
表示是否需要持久连接,
比如:Connection:keep-Alive
Content-Length
用于描述http消息实体的传输长度.需要注意的是:在http协议中,消息实体的长度和消息实体的传输长度是有区别的。
比如说gzip压缩下,消息实体长度是压缩前的长度,但是消息实体的传输长度是gzip压缩后的长度
Content-Type
显示此http请求提交的内容类型
比如:Content-Type:application/x-www-form-urlencoded;charset:UTF-8
"application/x-www-form-urlencoded"是浏览器的默认值,表示表单数据向服务器提交时所采用的编码类型。
Cookie
http请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器
Host
请求的web服务器域名地址
例:www.baidu.com
Origin
跨域的时候,get,post都会显示origin,同域的时候get不显示origin,post显示origin
Referer
包含一个url,用户从该url代表的页面触发访问当前请求的页面
User-Agent
http客户端运行的浏览器类型,详情。后台可以根据该头部信息,判断当前的http请求的客户端浏览器类型
X-Requested-With
用来判断客户端的请求是Ajax请求(异步)还是其他请求(同步)
后台可以利用request.getHeader(“x-requested-with”)为null判断是同步请求,为XMLHttpRequest则是Ajax异步请求
例:X-Requested-With:XMLHttpRequest
举例:
响应报文
1.响应状态(response code)
2.响应头(response header)
3.响应主体(response body)
Accept-Ranges
表明服务器是否支持指定范围的请求,比如bytes,表明支持字节请求
Access-Control-Allow-Origin
在服务器响应客户端的时候,如果设置Access-Control-Allow-Origin:* ,则允许所有域名的脚本访问该资源
Access-Control-Allow-Origin:http://www.ppt.com ,则表示值允许特定的域名访问。
Age
从原始服务器到代理缓存形成的估算时间,单位为秒。
Cache-Control
告诉所有的缓存机制是否可以缓存,已经缓存的类型。cache-control : no-cache
Connection
在http1.1中request和reponse header中都有可能出现一个connection头字段,此header的含义是当client和server通信时对于长链接如何进行处理。在http1.1中,client和server都是默认对方支持长链接的, 如果client使用http1.1协议,但又不希望使用长链接,则需要在header中指明connection的值为close;如果server方也不想支持长链接,则在response中也需要明确说明connection的值为close。
Content-Length
响应体的长度,web服务器返回消息正文的长度
Content-Type
返回内容的MIME类型Content-Type : text/html;charset=utf-8
Date
原始服务器消息发出的时间
Etag
请求变量的实体标签的当前值
Expires
响应过期的时间
Last-Modified
请求资源的最后修改时间
Server
web服务器软件名称
举例: