计算机网络——应用层协议

  • 时间:
  • 浏览:
  • 来源:互联网

应用层协议

  • DNS
    • 域名结构
    • 域名解析过程
  • HTTP协议
    • URL & URI
    • 请求与响应
  • HTTPS
    • HTTP 与HTTPS的区别
    • HTTP 1.0 与HTTP 1.1 与 HTTP 2.0

DNS

  1. DNS是一个分布式数据库。用于映射域名和IP地址,使人方便访问网址。有三个组成部分:域名空间和资源记录+域名服务器+解析器
  2. DNS是基于TCP和UDO协议的:用户到服务器采用UDP协议;DNS服务器通信采用TCP协议;

域名结构

域名层次例子
顶级域名com ; net ; gov ; org ; edu …
二级域名cctv; baidu; 360; google …
三级域名www. b …
四级域名www(三级域名不为www时)

域名级别低的写左边,级别高的写右边。
顶级域名可以分为:国家顶级域名;通用顶级域名;反向域名

域名服务器

域名服务器概念
根域名服务器管理互联网的主目录,本地域名服务器解析不了就会求助根域名服务器
顶级域名服务器负责管理所有的二级域名
权限域名服务器负责管理一个区的域名解析工作
本地域名服务器主机发送DNS请求后,首先会发送给本地域名服务器

域名解析过程

分类:
递归查询:主机向本地域名服务器
迭代查询:本地域名服务器向根域名服务器
在这里插入图片描述

HTTP协议

http HyperText Transfer Protocol:超文本传输协议;是一种无状态的,无连接的,基于请求和响应的客户端/服务端模型的通信协议。
Q1:什么事无状态?
A1:无状态是指两次通信之间没有任何关系,每一次都是新的连接,服务端不会记录前后的请求信息。
Q2:什么事无连接?
A2:无连接是指每次连接只能处理一个请求,服务器处理完客户端请求并接受到其应答后,就会断开连接。

URL & URI

url:统一资源定位符;
在这里插入图片描述
uri:同一资源标识符;

请求与响应

  1. 请求格式
    在这里插入图片描述
  2. 响应格式
    在这里插入图片描述
  3. 请求方法
方法名描述
GET请求 URL 指定的资源,请求参数放在url后边
POST创建,修改,上传资源。将资源放在请求体中
PUT修改资源,一般用POST代替
OPTIONS列出可对资源实行的方法,在跨域中会用到
HEAD类似于get请求,用于获取报文头部
PATCH更新资源,但一般用于部分更新,如果资源不存在,则会创建资源
  1. 常用头部键
头部键作用
Accept说明接收类型
Content-Length请求体/响应体长度
Accept-Encoding告知对方能够接受的长度
Content-Encoding编码格式
Accept-language可接收的编码格式
Content-Type请求体/响应体类型 eg: text/plain; appliacation/json
Authorization身份认证信息(请求头)
Date服务器日期(响应头)
  1. 状态码
状态码说明
1**信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接收并处理
3**重定向,需要进一步操作完成请求
4**客户端出错
5**服务器出错

常见状态码:
200 : ok
400 : Bad Request,请求报文中存在错误语法
401: Unauthorized,未通过身份认证
403: Forbidden,客户端被服务器拒绝访问了
404: 无法找到请求资源
500: 服务端在执行请求时发送了错误
502: 服务器暂时处于超负载或正在进行停机维护

HTTPS

https:超文本传输安全协议:在HTTP的基础上通过传输加密保证传输过程的安全性。
HTTPS = HTTP +SSL/TLS;
HTTPS特点:1. 身份验证;2.内容加密; 3.保护数据的完整性
HTTPS对应的通信过程:
在这里插入图片描述

HTTP 与HTTPS的区别

  1. http是明文传输,不安全;而HTTPS是经过SSL加密的,安全性较高;
  2. HTTP的端口是80;HTTPS的端口号是443;
  3. HTTP协议运行在TCP之上,所有传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上,所有传输的内容都经过加密的。

HTTP 1.0 与HTTP 1.1 与 HTTP 2.0

http 1.0 vs http 1.1

  1. 长连接:http1.1 引入了长链接和请求的流水线处理。一个TCP上可以传送多个HTTP请求和响应。从而减少了建立和关闭连接的消耗和延迟。HTTP1.1默认开启Connection:keep-alive。
  2. Host头处理:http1.0认为每台服务器都绑定唯一的IP地址,所以服务器上只能方位一个Web站点;Host头的引入,可以通过hostname来指定要访问的web站点。
  3. 错误通知管理:http1.0 新增了24个状态响应码,409,401等
  4. 带宽优化及网络连接的使用(Range域):http1.0 并不支持断点续传功能,每一次请求某个对象的一部分数据,却只能得到该对象的全部数据。在http1.1 引入了Range域,它允许只请求某个资源的某个部分。
  5. 缓存处理:HTTP1.1增加了更多的缓存控制策略:Entity tag; If-Unmodified-Since;If-Match等。

http1.1 vs http 2.0

  1. 多路复用:http 2.0 引入了多路复用技术,做到用一个连接能够并发处理多个请求,且请求数量远远大于http1.1
  2. header压缩:引入了HPACK算法可以对header的数据进行压缩,减小传输数据的体积。
  3. 服务器推送:允许服务器未经请求主动向客户端发送资源。
  4. 格式:http2.0采用的是二进制格式而非文本格式。

本文链接http://metronic.net.cn/metronic/show-22191.html