应用层:
 直面程序员的一层,因为应用程序是程序员自己写的,因此应用层的协议都是程序员自己定的
自定义协议
 程序员自己根据自己应用的特点,定义协议(数据格式/数据描述信息)
eg:以一个简单的网络版计算机为例
 功能:客户端发送两个数字以及一个运算符给服务端,服务端获取到数据然后进行运算
int num1; int num2; char op;

  1. num1, num2, op ----将所有的数据转成字符串,使用特殊字符间隔;这时候就将数据按照指定协议组织起来了.
  2. 采用结构体构造二进制数据串
    struct cal_t{int num1;int num2;char op;
    };
    

 序列化:将各个数据对象按照指定的协议组织成为持久化存储/数据传输的二进制数据串
 反序列化:将二进制数据传按照指定协议解析等到各个数据对象
 常见的序列化方式:json序列化/protobuf/二进制序列化
知名协议
HTTP协议: 超文本传输协议—早期专门用于传输超文本数据html,但是随着协议发展多元化,不限制数据格式
 网站-统一资源定位符:URL----在网络中唯一表示定位一个资源
 如何定位----URL中包含的元素:
  协议方案名称://认证用户名:认证密码@服务器IP地址:服务器处理进程端口/请求的资源路径?查询字符串#片段标识符
http://username:password@www.xxx.com:80/index.html
 服务器IP地址:

我们看得到不一定是IP地址,也可能是域名-服务器别名----通过域名解析服务器就能得到服务器的IP地址

 服务器端口:

web服务器默认http服务器端口是80端口,默认不显示

 /请求的资源路径:

资源在服务器上的路径,这里的/是http根路径,但是是一个服务器上的相对根目录,只是一个子目录

 查询字符串:

客户端提交给服务端的一些数据,有key=val&key=val形式的键值对组成
查询字符串中不能出现特殊字符,因为URL中特殊字符都有特殊含义,一旦提交的数据中有特殊字符,就会造成歧义,因此若提交的数据中有特殊字符,则需要进行数据转义
urlencode: url编码,将特殊字符每一个字节,转换为16进制的数字字符,并且使用%前缀做为转移表示
urldecode:url解码,在url中遇到%,则认为气候两个字符需要转移,将第一个字符转换成数字乘以16/左移4位,加上第二个字符转换的数字

片段标识符

html中的一个标签id,直接跳转到页面的某个位置

HTTP协议实现:
 抓包工具:wireshark / fiddler
  wireshark:网卡抓包工具,抓取流经网卡的所有数据流量----什么包都能抓
  fiddler:浏览器的代理工具,通过代理实现数据抓包-----专业的http抓包工具
 HTTP协议格式:

请求:
 首行: GET http://123.123.123.123/admin HTTP1.1 以空格进行间隔包含三个要素,并且最终以\r\n作为结尾
    请求方法:GET/POS/HEAD/DELETE/CONNECT/OPTION
     GET --请求实体资源,也可以通过url中查询字符串向服务器提交数据(数据不安全),但url长度有限制(各个服务器应用商的限制)
     POST --主要用于向服务器提交数据,提交的数据在正文中(数据安全)
      HEAD --类似于GET,相较于GET,HEAD只要响应头部,而不响应正文
   URL: http://123.123.123.123
    协议版本: HTTP1.1     0.9/1.0/1.1/2.0
   0.9: 这时候的http仅用于传输html数据,并且只有get请求,并且协议格式不完整
   1.0: 正式规定了http协议格式,并且增加了多种请求方式,并且支持了不同文件格式的数据流
   1.1: 在1.0的基础上增加了更多请求方式和头部描述信息,并且支持长连接
   2.0: 采用二进制流传输,并且进行多路复用,并且允许服务端主动推送数据
    短连接: http基于在传输tcp实现通信,短连接指的是建立连接,发送一个请求,得到响应后,则关闭连接
    长连接: 一次连接可以发送多条请求
 头部:描述本次请求的关键字段信息,由key-val形式的键值对组成,并且每个键值对以\r\n作为结尾
  Connection- -控制长短连接, Cache-control - -缓存控制,  User-Agent - -客户端属性, Accpet - -描述自己所能接收的数据属性, Content-length - - 描述正文长度, Content-Type - -描述符正文数据类型, Cookie
   Cookie: 早期http是短连接通信,是一个无状态协议,不会保存客户端状态,每次访问都需要进行登录,因此引入Cookie保存客户端状态。 Cookie中可以带有一些信息,持续在通信中描述客户端的通信状态,但是不够安全
 空行:间隔头部于正文,\r\n 接收http数据的时候,当连续接收两个\r\n\r\n(\r\n\r\n)的时候,则认为头部信息到此结束
  先获取完整头部,通过头部中的Content-Length获取正文长度,然后获取指定
 正文:提交服务端的数据
响应
 首行: HTTP/1.1 303 See other,   包含3个要素,以空格进行间隔,以\r\n作为结尾
  协议版本: 0.9/1.0/.1.1/2.0
  响应状态码: 表示本次的请求服务端做出的响应
   1xx:描述信息
   2xx:表示本次请求正确处理完毕
   3xx:重定向 - -你请求的资源在另一个位置,要求客户端重新请求新的位置; 301 - 永久 302 - 临时
   4xx:表示客户端请求错误; 400- -请求错误/ 404 - -表示请求的资源不存在
   5xx:表示服务端错误; 500- -服务器内部错误/ 502- -代理请求失败/无效响应/504- -代理请求超时
  状态码描述:对状态码的描述信息,可以是官方文档对应描述,也可以自定义
 头部:关于本次响应的一些关键字段描述信息,以key-val键值对组成,以\r\n作为结尾
  Transfer-Encoding:实体正文的传输方式
  Expires:缓存过期时间
  Location:重定向的新位置
  Set-Cookie:服务端通过Set-Cookie向客户端传递信息,会被保存在客户端浏览器的Cookie文件中
  Cookie:客户端通过Cookie文件读取数据通过cookie向服务端传递信息
Session:会话,服务端会为每个登录的客户端创建会话,在服务端描述一些信息(客户端身份信息,状态信息),保存在服务端,可以通过Cookie将session id返回给客户端,客户端每次通信都会通过cookie带又自己的session id;

计算机网络--应用层相关推荐

  1. 考研—计算机网络—应用层

    考研-计算机网络-应用层 两种模型--网络应用模型 1)客户/服务器模型 服务器是一个总是打开的主机,用来服务客户机. 客户是服务请求方,服务器是服务提供方. C/S模式应用包括:Web.文件传输FT ...

  2. 基础知识-计算机网络-应用层

    基础知识-计算机网络-应用层 1 应用层协议原理 1.1 网络应用程序体系结构 1.2 进程通信 1.3 应用层协议 1.4应用程序所需要的服务(运输服务) 1.5 因特网运输协议提供的服务 2 We ...

  3. 计算机网络--应用层Web简单介绍

    计算机网络养成:第六天 内容导航 计算机网络养成:第六天 学习内容 Web and HTTP URL (Uniform Resource Locator)统一资源定位符 HTTP概况[hype tex ...

  4. 计算机网络应用层课后习题练习(一)

    计算机网络应用层课后习题练习 应用层知识点概览 课后练习(一) 应用层知识点概览 域名系统DNS 文件传送协议FTP和TFTP 远程终端协议TELNET 万维网WWW 电子邮件SMTP/POP3/IM ...

  5. 计算机网络 | 应用层 :HTTP协议详解

    目录 自定制协议 HTTP协议 URL HTTP协议的特点 HTTP协议版本 HTTP协议格式 首行 请求首行 请求方法 响应首行 响应状态码 头部 Cookie与Session 空行 正文 请求正文 ...

  6. 计算机网络 - 应用层

    文章目录 1 网络应用模型 1.1 概述 1.2 网络应用模型 1.2.1 客户/服务器模型(Client/Server) 1.2.2 P2P模型(Peer-to-Peer) 2 域名系统DNS 2. ...

  7. 万字+图片解析计算机网络应用层

    1. 应用层概述 (1).前情回顾 物理层:解决使用何种信号来传输比特的问题 数据链路层:解决分组在一个网络(或一段链路)上传输的问题 网络层:解决分组在多个网络上传输(路由)问题 运输层:解决进程之 ...

  8. 计算机网络应用层(二):DNS协议详解

    DNS协议详解 前言 DNS协议概述 DNS工作原理 DNS缓存 DNS记录和报文 资源记录 DNS报文 总结 前言 DNS是计算机网络中应用层的一个协议,可能很多同学碰到过DNS被劫持的情况,我们现 ...

  9. 计算机网络应用层论文,计算机网络实验报告应用层.doc

    计算机网络实验报告应用层.doc 沈 阳 工 程 学 院 学 生 实 验 报 告 (课程名称:计算机网络) 实验题目: 应用层各种服务的配置 班 级 学 号 单超杰 地 点 F608 指导教师 费雅洁 ...

  10. 计算机网络应用层报告,计算机网络实验报告应用层

    计算机网络实验报告应用层 沈 阳 工 程 学 院 学 生 实 验 报 告 (课程名称:计算机网络) 实验题目: 应用层各种服务的配置 班 级 网本111班 学 号 06 姓 名 单超杰 地 点 F60 ...

最新文章

  1. 全面认识网络诊断命令功能与参数——netsh diagnostic命令
  2. 你有没有扔过一枚硬币选择正反面?
  3. response.getWriter().write 传递中文乱码
  4. 一、查看MVC4还是MVC5
  5. SQL语句快速回忆——SQL基础知识点汇总
  6. .NET打包工具怎么注册 .dll文件??
  7. 中职计算机基础课堂传统教学,中职计算机基础知识教学创新
  8. 02 | 高性能 IO 模型:为什么单线程 Redis 能那么快?
  9. 华为鸿蒙harmonyos-面向全场,华为正式官宣鸿蒙手机版相约6月2日,EMUI官博更名为HarmonyOS...
  10. 系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab
  11. Win32ASM学习[11]:逻辑运算
  12. UIImage 裁剪图片和等比列缩放图片
  13. scala 学习笔记--集合
  14. GCC的__attribute__ ((constructor))和__attribute__ ((destructor))
  15. java自动排序_java中的自动排序集合 ---- 20160809
  16. 计算机软件水平考试中级题目,计算机软考中级考试试题及答案
  17. 多个图片合成PDF文件
  18. 站在巨人的肩膀上--邵泓鑫
  19. 团队作业1——团队展示
  20. 苹果手机显示无法与服务器建立安全连接,苹果手机那个safari浏览器无法与访问器建立安全链接是什么意思...

热门文章

  1. 计算机论文未来展望,从计算机的进化引发对未来的展望论文
  2. 高速串口通信稳定_长虹配套珠峰5G通信装备 保障直播信号稳定高速传输
  3. 大数据架构师+精英必备技能
  4. ORA-01157: cannot identify/lock data file n 故障一例
  5. PageHelper PageInfo 手动List分页
  6. 谷歌流计算论文streaming 101: 批处理之上的世界(一)
  7. 柔性化生产与ERP等软件定义
  8. [深度学习] magic point
  9. MFC 国际化(多国语言)
  10. 嵌入式五种重要概念串口、COM口、TTL、RS232、RS485的区别详解