TCP/IP协议是什么
[1]简述
协议(pritocol)存在很多规则(从电缆的规格到IP地址的选定方法,寻找异地用户的方法,web页面显示的方法),分工协议的专业化——因此把协议分成几个层面
原因:让每个层面有专门的
协议去负责,可以做到详细和完整,而且方便修改 另一方面:逐层的设计可以让负责这一块的人去了解这一协议,这种分工因此也更加专业而且科学
这些协议集合起来叫做TCP/IP
TCP/IP 是指 TCP 和 IP 这两种协议。还有一种说法认为,TCP/IP 是在 IP 协议的通信过程中,使用到的协议族的统称
[2]分层
TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和数据链路层。
[3]了解主要的一些协议
(一).IP协议
IP(Internet Protocol)网际协议位于网络层
IP地址->MAC地址->MAC地址->IP地址
MAC地址是网卡所属的固定 中间需要ARP协议
在网络上,通信的双方在同一局域网(LAN)内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的 MAC地址来搜索下一个中转目标。这时,会采用 ARP 协议(AddressResolution Protocol)。ARP 是一种用以解析地址的协议,根据通信方的 IP 地址就可以反查出对应的 MAC 地址。
(二)·TCP协议
TCP 位于传输层,提供可靠的字节流服务.
->所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。
而且 TCP 协议能够确认数据最终是否送达到对方
三次握手策略:
发送端首先发送一个带 SYN 标志的数据包给对方。接收端收到后,回传一个带有 SYN/ACK 标志的数据包以示传达确认信息。最后,发送端再回传一个带 ACK 标志的数据包,代表“握手”结束。
但也有其他方式来保证通信的可靠性
(三)·DNS协议
DNS(Domain Name System)服务是和 HTTP 协议一样位于应用层的协议。它提供域名到 IP 地址之间的解析服务。
IP地址是一长串纯数字,比较适合计算机去阅读,而主机名和域名的表示方式更适合人类的记忆 比如:baidu.com
DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。
[4]协议之间的联系
每个层级之间相互联系并且运用了以上的一些协议(有发送和返回两个过程)
hypertext transfer protocol
在网络上电脑间沟通的一种方式,主要用在网页上
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)
HTTP协议工作于客户端-服务端架构上。
主要讲的是请求方法
header是一部分额外的信息
http/1.1 /card是路径 host 这三者组成一个网址 post是http方法
accepted是接受的类型,content-type是下面传输内容的类型
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成
response
HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文(有时候是html)
http版本 状态码 状态资讯
header:
server:nginx指的是这个server用的软件是nginx
cotent-length 是回传的字符长度
date是回传的时间
关于响应头 :可以具体看https://www.runoob.com/http/http-header-fields.html
300+代表请求错误需要转到其他网址处理
400+代表发送请求的一段错误(可能是格式写错或者漏写东西)
500+服务器宕机或者服务器被烧掉了
301表示发送请求的网址已经搬家了
400表示请求的格式错误
401表示请求的内容比较敏感,由于没有验证码所以出错了
403表示内容敏感而且你验证码错误了
404发送请求的网址不存在
500服务器坏了
明文传输导致http不安全
网络公开,有人可以窃听传输的数据
所以就出现了https
hypertext transfer protocol secure 超文本传输安全协定
SSL/TLS加密
此时传输的资料是加密过的
国际域名(.com)从字面上可以知道,是国际的,源于美国,而国内域名(.cn)则来自于中国互联网信息中心。
header可以去看https://zh.wikipedia.org/wiki/HTTP%E5%A4%B4%E5%AD%97%E6%AE%B5的介绍或者菜鸟教程
response可以看回传的html档案
(f12 network 点开一个传输状态(请求) 可以看header和response)
可能只输入一个网址却发送了很多的请求(因为返回的html中又发送了很多js等请求)