学了OSI参考模型(Open Systems Interconnection,开放系统互连)即应用层(pud)、表示层、会话层、传输层(数据段)、网络层(数据包)、数据链路层(帧)、物理层(比特)。
域名:互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。
DNS:域名系统(Domain Name System,DNS)是Internet上解决网上机器命名的一种系统。DNS就是将域名解析成IP地址一个IP地址对应的就是一台DNS服务器 打开网络属性查看IP地址 DNS服务地址DNS就是存着域名与对应IP的一张表的服务器 你访问网站先访问DNS服务器 然后查到IP进行访问
CDN:内容分发网络,用于提高用户访问网站的响应速度。思路:就是避开网络上可能影响的数据传输速度和稳定性的瓶颈和环节,让数据传输更快更稳定。
DDOS:分布式拒绝服务攻击,通过一个宿主机控制一个傀儡机并下达攻击的一切信息,然后傀儡机控制很多的主机按照宿主机给的信息去攻击目标主机。
DNS缓存中毒:攻击者给DNS服务器注入非法地址,如果服务器接收这地址,说明缓存被攻击了,表现为打开的网站不是目标网站。
DNS重定向:攻击域名解析服务器或伪造域名解析服务器,把目标网站的域名解析到错误的地址实现无法访问网站的目的或访问假冒网站获取用户信息的目睹。
DNS查询嗅探:通过DNS配置信息获取网络环境信息。
ARP欺骗:ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
应用层:
HTTP:超文本传输协议(html,图片,视频,音频)
FTP:文件传输协议
SMTP:简单邮件传输协议
POP3:邮局协议,接收邮件服务
DNS:域名解析协议 ,将IP解析为网站地址(www.baidu。com——–110.242.68.4)
传输层:
TCP:传输控制协议
UDP:用户报文协议
网络层:
IP协议:ipv4 ipv6
IP地址就是一个唯一标识,是一段网络编码(二进制,计算机只读的懂0和1),我们ip地址就是由32个0
和1的组合而成
TCP和UDP
TCP三次握手:
客户端将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给服务器端,客户端进入SYN_SENT状态,等待服务器端确认。
服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给客户端以确认连接请求,服务器端进入SYN_RCVD状态。
客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务器端,服务器端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务器端进入ESTABLISHED状态
四次挥手:
客户端发送一个FIN=M,用来关闭客户端到服务器端的数据传送,客户端进入FIN_WAIT_1状态。
服务器端收到FIN后,先发送ack=M+1,告诉客户端,你的请求我收到了,但是我还没准备好,请继续你等我的消息。这个时候客户端就进入FIN_WAIT_2 状态,继续等待服务器端的FIN报文。
当服务器端确定数据已发送完成,则向客户端发送FIN=N报文,告诉客户端,好了,我这边数据发完了,准备好关闭连接了。服务器端进入LAST_ACK状态。
客户端收到FIN=N报文后,就知道可以关闭连接了,但是他还是不相信网络,怕服务器端不知道要关闭,所以发送ack=N+1后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。服务器端收到ACK后,就知道可以断开连接了。客户端等待了2MSL
后依然没有收到回复,则证明服务器端已正常关闭,那好,我客户端也可以关闭连接了。最终完成了四次握手。
tcp与udp区别:tcp是面向连接,dup面向无连接。tcp报文结构复杂。tcp是基于字节流,udp是基于数据报。tcp会保证数据正确性,传输顺序是正确的,而udp不是。
HTTP请求报文格式:
请求方法 URL 协议版本
HTTP报文里有什么
Request URL: http://localhost:8088/verydows/user/register.html?step=submit
Request Method:post
Request Header:包括很多字段,是对当前请求的一个补充说明
Request data:payload,请求数据
username: bk2205_001
email: bk2205_001@163.com
password: 123456
repassword: 123456
agree: on
请求方法
get:向服务器端申请数据,可以获得响应实体(html格式,josn,xml格式)
head:类似get,但是只获取响应头部,不获取实体
post:可以获取实体,对资源进行增删改
put:修改服务器资源
delete:删除服务器资源
如果为http协议:只用get,post
如果是restful接口,可以使用get,post,put,delete
get和post的区别
1、GET提交的数据会放在URL之后,也就是请求行里面,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456.(请求头里面那个content-type做的这种参数形式,后面讲) POST方法是把提交的数据放在HTTP包的请求体中.
2、GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
3、GET与POST请求在服务端获取请求数据方式不同,就是我们自己在服务端取请求数据的时候的方式不同了,这句废话昂。
4、get 请求发一次即可完成,post请求发两次。
5、get向服务器要要数据不影响服务器资源,post向服务器要资源,并可以改变服务器上的资源。
响应报文格式
协议版本 状态码 状态码描述
响应代码
200:请求成功
301 302: 分别是永久重新定向和临时重新定向
304:文件内容未发生改变
401:未授权状态
403:禁用状态
404:资源不存在(路径,资源名写错)