网络各分层协议的学习小结

本文详细介绍了网络各分层协议,包括应用层的HTTP、HTTPS、TCP、UDP协议,强调了它们在数据传输中的作用。讲解了HTTP协议的URL、请求响应机制、状态码等,传输层的TCP与UDP特性,如TCP的三次握手、四次挥手、拥塞控制、流量控制等,并提到了网络层的IP协议、子网划分和数据链路层的以太网帧格式、MAC地址和ARP协议。
摘要由CSDN通过智能技术生成

在开始之前,我们先来看一张简单的网络各分层的结构图,以及各个不同分层之间都会用到的协议:
在这里插入图片描述今天就从上往下讲一下HTTP,HTTPS,UDP,TCP,IP协议具体内容以及数据包如何通过这些协议实现跨网络传输。希望通过这篇文章,大家最起码知道两点内容:(1)在各层之间如何将报头与有效载荷正确分离,(2)解包交付的时候如何知道要交给上一层的谁。
在此之前先普及一些常识性的东西:
1,实际上,我们程序员写的一个个解决我们实际问题,满足我们日常需求的网络程序,都是在应用层.
2,协议是一种"约定".socketapi的接口,在读写数据时,都是按"字符串"的方式来发送接收的.
3,序列化:将多个字符串合并成一个字符串
4,反序列化:将一个字符串分解成多个字符串
5,端口号标识一个主机上唯一一个网络进程。
开始进入正题

一,应用层

1,应用层协议: 保证一端在发送时构造的数据,在另一端能够正确地进行解析的约定。基于TCP的应用层协议有:HTTP,HTTPS,SSH,Telnet, FTP, SMTP。
2.HTTP协议(超文本传输协议)
HTTP是一种应用层协议
(1)网址(URL):
在这里插入图片描述
(2)urlencode和urldecode
像 / ? : 等这样的字符, 已经被url当做特殊意义理解了. 因此这些字符不能随意出现.
比如, 某个参数中需要带有这些特殊字符, 就必须先对特殊字符进行转义.
转义的规则如下:
将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY。
格式:
在这里插入图片描述
“+“被转义成了”%2B”
urldecode就是urlencode的逆过程。
(3)HTTP协议格式
HTTP协议是一个请求响应机制,它的底层用TCP协议。
TCP协议的特点:面相链接
HTTP协议的两个任务:★请求资源;★提交信息
HTTP请求分3或4部分:
★请求行;
★请求报头:格式-> name: value
★空行:区分报头与有效载荷
★请求正文
get方法是3部分,没有请求正文,post方法是4部分。
目前HTTP传输数据的两种方案:
★长链接: 高效(1.1)–>最常用
★短链接: 简单(早期HTTP协议1.0用)

下面来认识一下HTTP请求与HTTP应答的协议格式

HTTP请求:
在这里插入图片描述
cookie: 保存在本地(保存账号和密码)
sentionId: 保存在服务器(保存用户信息)

HTTP响应:
在这里插入图片描述
HTTP的方法:
在这里插入图片描述
其中最常用的就是GET方法和POST方法 。
https:经加密的http请求,加密层在传输层与应用层之间,是给整个http加密。

HTTP的状态码:
在这里插入图片描述
最常见的状态码:
200(OK),
404(Not Found):客户端错误
403(Forbidden),
302(Redirect, 重定向),
504(Bad Gateway)

重定向分为 临时重定向 和 永久重定向。
HTTP常见Header:
Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
User-Age:声明用户的操作系统和浏览器版本信息;
referer: 当前页面是从哪个页面跳转过来的;
location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;
Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的功能。
来解决之前的两个问题:HTTP是用空行来将报头与有效载荷正确分离,而数据报要去哪访问,访问什么则由Host与location里面的内容决定。

二,传输层

负责数据能够从发送端传输到接收端 。
再来认识一下端口号
1,端口号(Port):标识了一个主机上进行通信的不同的应用程序,端口号标识了特定主机上唯一一个网络服务进程。用于传输层与应用层IP报文的分用。
IP地址+端口号=套接字
在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过netstat -n查看);
在这里插入图片描述
2,端口号的范围划分
★ 0 - 1023: 知名端口号, HTTP, FTP, SSH等这些广为使用的应用层协议, 他们的端口号都是固定的.
★ 1024 - 65535: 操作系统动态分配的端口号. 客户端程序的端口号, 就是由操作系统从这个范围分配的.
端口号占16个bit位,用字节来表示。
3,认识知名端口号<

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值