计算机网络重要知识点总结(一)

OSI协议、TCP/IP协议以及每层对应的协议

一、OSI七层协议分别:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
二、TCP/IP五层模型的协议:物理层、数据链路层、网络层、传输层、应用层。
1、物理层:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。确保数据能够在各种物理媒体上传输。
2、数据链路层:两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。链路层协议控制两个相邻节点之间数据的传送。具体表现在如何将数据组合成帧;如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。
3、网络层:在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。
4、传输层:能在两台计算机之间够建立端到端的连接,进行数据的传输。
5、应用层:应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。

Http协议

一、什么是HTTP协议?Http协议的结构?

客户端和服务器端之间数据传输的格式规范,格式简称为“超文本传输协议”。基于TCP协议,默认使用80端口。
http请求报文的结构:
在这里插入图片描述
1)请求行: 请求方法(get/post)、请求资源路径URL 、协议类型和版本(http/1.0)
2)请求头: 消息头是一些键值对,一般由w3c定义,浏览器与web服务器之间都可以发送,表示特定的某种含义。比如,浏览器可以发送"user-agent"消息头,告诉web服务器浏览器的类型和版本。
3)请求数据: 只有当请求方式为post时才有值(请求参数),如果请求方式为get,请求参数会添加到请求资源路径的后面。
http响应报文的结构:
在这里插入图片描述
1)响应行:协议类型和版本(http/1.0) 状态码 状态描述(OK) 
2)响应头: 服务器也可以发送一些消息头给浏览器,比如"content-type",告诉浏览器,服务器返回的数据类型和编码格式(字符集)。
3)响应正文:程序处理的结果,浏览器会将实体内容中的数据取出来,生成相应的页面。

二、http协议是无状态的。什么是无状态协议?解决办法有哪些?

协议对于事务处理没有记忆能力。在无状态协议当中,每个请求都是互相独立的。每个请求包含了处理这个请求所需的完整的数据,发送请求不涉及到状态变更。服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器。
无状态协议解决办法: 使用session、cookies等状态机制。由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户。
Cookie & session
1、Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。
2、session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效。

扩展:
IP协议是无状态的,它只负责将一个IP包发送到指定的IP地址上去。它不会考虑这个包与前面已经发送的包和后面的包的联系。(可能是重发包、可能是不连续包,它不管)。
TCP协议是有状态的,它通过包头中的一些控制字段(序列编码等)来表明各个包之间的关系(前后关系,重包与否等等)。所以,通过这个协议你可以做到一个可靠的传输。其实这里的面向连接其实就是“三次握手”。
UDP是无状态的,它仅仅是在IP上加了Port,其他的事情什么也不干。这样它不可能做到可靠的传输,同样也不需要连接。

三、常见http状态码

200:OK 客户端请求成功
301:永久性重定向,使用域名跳转
302:临时重定向,未登录用户访问用户中心重定向到登录页面
304:客户端浏览器的缓存内容没有过期,服务器没有重新发送该网页内容给客户端。
403:服务器收到请求,但是拒绝提供服务,请求的对应资源禁止被访问
404:服务器无法找到对应资源
500:服务器内部错误
502:502是报错类型代码 bad gate way 错误的网关。产生错误的原因是连接超时,我们向服务器发送请求,由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错。
503:服务器正忙

四、get请求方法和post请求方法的区别

1)get重点在从服务器上获取资源,post重点在向服务器发送数据;
2)get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?“连接,多个请求数据间用”&"连接。
如http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的。
post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的;
3)Get传输的数据量小,因为受URL长度限制,但效率较高;
Post可以传输大量数据,所以上传文件时只能用Post方式;
4)get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等;而post较get安全性较高。
5)get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码。
post支持标准字符集,可以正确传递中文字符。
6)get是幂等性操作,post是非幂等性操作。

幂等的概念是指同一个请求方法执行多次和仅执行一次的效果完全相同。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值