欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

计算机网络应用层--龙之介计算机网络学习(2)

程序员文章站 2024-02-22 21:47:55
...

概述: 其实计算机网络主要聊的就是因特网五层协议栈的那几种协议,通过对各个协议的构成,了解一个数据包(报文)是如何从网络中完成传输的作用。
这是一个系列的,主要用于自己复习计网。
协议分层概念–龙之介计算机网络学习(1)

今天我介绍的是应用层。

应用层:

应用层是离我们最近的一层协议了,也是第五层协议。他主要是有关网络应用的原理和实现方面的知识。
比如,web,电子邮件,DNS,对等文件分发,视频流。
我只介绍面式常问的HTTP和DNS,其他的有兴趣可以去看黑皮书《计算机网络自顶向下方法》

web HTTP协议:
超文本传输协议HTTP(HyperText Transfer Protocol)是Web的无状态协议(不保存用户状态,只接受请求和回复响应,比如你打开一个网页,你刷新之后又是重新请求连接)。

HTTP是基于TCP运行的。

  1. . 报文格式:

http请求报文:
GET /somedir/page.html HTTP/1.1
Host : www.someschool.edu
Connection: close
User-agent : Mozilla/5.0
Accept-language: fr

请求行:

方法字段         URL字段          HTTP版本字段 
“GET       /somedir/page.html      HTTP/1.1 “ 
GET          请求对象的标识 
POST 
HEAD 
PUT 
DELETE

首部行:

首部字段值                  值 
Host :              www.someschool.edu
Connection:              close 
User-agent :           Mozilla/5.0
Accept-language:          fr

http响应报文:
HTTP/1.1 200 OK
Connection : close
Date: Tue, 18 Aug 2015 15:44:04 GMT
Server: Apache/2.2.3 (CentOS)
Last_Modified: Tue, 18 Aug 2015 15:11:03 GMT
Content-Lenth:text/html
(data data data data ………)

状态行:
版本 状态码 短语 HTTP/1.1 200 OK
301 Moved Permantenly
400 Bad Request
404 Not Found
505 HTTP Version Not Support

首部行:

首部字段名 值
Connection : close
Date: Tue, 18 Aug 2015 15:44:04
GMT Server: Apache/2.2.3 (CentOS) 》
Last_Modified: Tue, 18 Aug 2015 15:11:03 GMT
Content-Lenth: text/html

实体行:(data data data data ………)

  1. Cookies 和 Session
1. cookie 是一种能够识别用户的一种在web站点对用户进行追踪
的技术。因此cookie可以在无状态的HTTP之上建立一个用户会话
层。可以用来在某个WEB站点会话间持久的保持数据
比如,电子商务中的购物车,电子邮件注册等。
2. session其实指的就是访问者从到达某个特定主页到离开为止
的那段时间。 Session其实是利用Cookie进行信息处理的,当用
户首先进行了请求后,服务端就在用户浏览器上创建了一个
Cookie,当这个Session结束时,其实就是意味着这个Cookie
就过期了

3. cookie数据保存在客户端,session数据保存在服务器端。

DNS:
好比每个人都有姓名和身份证。这两个都能作为身份标识,但是普通人应该更乐意使用更好记的姓名而不是一长串数字吧。

如果找人用姓名身份证的话,那么找主机就用DNS。
DNS(域名系统)是一种可以识别主机名或者IP地址的协议(用于将主机名转换为IP地址,目的是为了在茫茫人网络中找到目标主机)。DNS是由分层的DNS服务器实现的分布式数据库,使得主机能够查找分布式数据库的应用层协议。运行在UDP协议之上端口53

主机解析域名顺序:DNS缓存->本地DNS服务器->根DNS服务器->*域DNS服务器->权威DNS服务器