计算机网络协议层次
- OSI是一个开放性的通信系统互连参考模型
TCP/IP四层参考模型 (主要)
模型 | 协议 |
---|---|
应用层 | http80-ftp21-dns-telnet23-smtp |
传输层 | TCP |
互联网层 | ICMP,IGMP,IP |
网络接口层 | ARP/RARP |
1 应用层
应用层是网络应用程序以及它们的应用层协议存留的地方。因特网应用层包括许多协议,例如HTTP(Web应用的主要协议)、SMTP(邮件传输)和FTP(文件传送)等。再比如我们每天都在使用的DNS域名系统。
应用层协议分布在多个端系统上,一个端系统中的应用程序使用协议与另外一个端系统中的应用程序交换信息的分组。
我们把位于应用层的信息分组称为报文。
1.1 HTTP协议
- 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准,通过因特网传送万维网文档的数据传送协议。
- HTTP 是基于TCP/IP协议的应用层协议。是无状态协议,传输的数据是明文的它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。
- HTTP/2.0是一个彻底的二进制协议;实现双向的、实时的通信(多工),避免了队头阻塞;用ID来区分数据流,客户端发出的数据流,ID一律为奇数,服务器发出的,ID为偶数;可以取消数据流;客户端还可以指定数据流的优先级。优先级越高,服务器就会越早回应;引入了头信息压缩机制和信息表;允许服务器未经请求,主动向客户端发送资源,这叫做服务器推送;
1.1.1 http请求包括什么
HTTP 请求由三部分组成:
○ 请求行
○ 请求头
○ 请求正文
POST /index.html HTTP/1.1 ==请求方法 url 协议/版本号==
Host: localhost ==主机地址 请求的web服务器域名地址==
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
==指定客户端能够接收的内容类型,内容类型中的先后次序表示客户端接收的先后次序==
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5==HTTP客户端浏览器用来展示返回信息所优先选择的语言==
Accept-Encoding: gzip, deflate
Keep-Alive:==长连接时间即在规定的Keep-Alive时间内,连接是不会断开的==
Connection: keep-alive
Referer: <a target=_blank href="http://localhost/" style="color: rgb(51, 102, 153); text-decoration: none;">http://localhost/</a>用户从该URL代表的页面出发访问当前请求的页面
Content-Length:25
Content-Type:application/x-www-form-urlencoded
==请求空行 标志着请求头结束,请求正文(请求体)的开始==
username=aa&password=1234
HTTP 响应
○状态行
○消息报头
○响应正文
协议版本 状态代码,及相应的状态描述组成
HTTP/1.1 200 OK
生成消息的具体时间和日期,即当前的GMT时间。
Date: Sun, 17 Mar 2013 08:12:54 GMT
Server: Apache/2.2.8 (Win32) PHP/5.2.5 指明HTTP服务器的软件信息
X-Powered-By: PHP/5.2.5 表示网站是用什么技术开发的
非常重要的header, 用于把cookie 发送到客户端浏览器, 每一个写入cookie都会生成一个
Set-Cookie: PHPSESSID=c0huq7pdkmm5gg6osoe3mgjmm3; path=/
浏览器会在指定过期时间内使用本地缓存,指明应该在什么时候认为文档已经过期,从而不再缓存它。
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 4393指明实体正文的长度,以字节方式存储的十进制数字来表示。
响应报头域用于重定向接受者到一个新的位置。
例如:客户端所请求的页面已不存在原先的位置,为了让客户端重定向到这个页面新的位置,
服务 器端可以发回Location响应报头后使用重定向语句,让客户端去访问新的域名所对应的
服务器上的资源。当我们在JSP中使用重定向语句的时候,服务器 端向客户端发回的响应报
头中,就会有Location响应报头域。
Location: Location
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8WEB服务器告诉浏览器自己响应的对象的类型和字符集,
1.1.2 http与https
https更安全、更可信
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer)&#