网络协议与数据通信

网络协议与数据通信

URI:分为URL和URN,
URL(统一资源定位符),作为网页地址,简称网址。 网址的构成
https://www.baidu.com/s?ie=utf-8&f 协议://域名/路径?查询参数#锚点
URN(统一资源名称),根据URN可以唯一确定一个资源。
域名:由一串用点分割的名字组成的Intrenet上某一台计算机或计算机组的名称,用于在数据传输的时候确定计算机的电子方位。www.baidu.com,www为主机名,baidu为机构名,com为顶级域名
DNS:域名系统,作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便访问互联网
IP:互联网协议地址,是分配给用户上网使用的网络协议,常见ip地址分为IPV4和IPV6
IP协议:将多个包交换网络连接起来的,它在源地址和目的地址之前传送一种称之为数据包的东西,它还提供对数据大小的重新组装功能,以适应不同网络对包大小的要求,是一种无连接,不可靠的传送机制。
IP协议:分为内网IP和外网IP,内网IP是手机和电脑使用的IP,外网IP是路由器使用的,就是在互联网中的地址,路由器没有固定的外网IP。内网和外网通过路由器连同,因为路由器既有内网IP又有外网IP。
端口:要访问一个设备(使用的是 TCP 或 UDP 协议。HTTP就使用了TCP),值指定IP是不够的,还需端口。一个服务器,不一定只提供一种服务,比如一个服务器既要提供HTTP服务,又要提供FTP服务,还提供SMTP(邮件服务),用一个IP是无法告诉服务器要使用那种服务的,因此有了端口,一个端口对应一个服务
80端口 对应HTTP服务
443端口 对应 HTTPS服务
21端口 对应FTP服务

TCP协议:TCP是一种可靠的,面向连接的传输层协议,TCP协议对系统资源要求多,TCP协议如同打电话,用户拨打特定的号码后,对方在线并接电话,然后双方进行通话,结束后挂掉电话
UDP协议:不面向连接,相对TCP较快,不可靠的传输层协议,对系统资源要求少,具有实时性,结构简单。UDP如同发短信,用户发送后,不能确定对方是否接受,对方是否回答。
TCP的三次握手
TCP在建立连接前,客户端和服务端要进行三次对话才开始真实传输内容,三次对话大概是:
客户端:我要连接你了,可以吗(发生连接报文)
服务端嗯,我准备好了,连接我吧(做出响应并发生连接报文)
客户端:那我连接你了(发生确定连接报文)
开始后续步骤
四次挥手
客户端:发出连接释放报文,并停止发送数据
服务器:收到连接释放报文,发生确认报文,进入关闭等待状态,此状态,客户端没有数据发送,但服务段还有数据发送
客户端:收到确认报文,进入终止等待状态,等待服务器发送连接释放报文
服务器:将最后的数据发送完后,发送连接释放报文,此时进入最后确认状态
客户端:收到释放报文后,发出确认报文,进入时间等待状态,等待最长报文段时间后,撤销TCB,才进入关闭状态
服务器:收到客户端的确认报文后,立即进入关闭状态

HTTP协议:是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式
常见的HTTP方法
GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器。
POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。
PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。
HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。
OPTIONS:查询相应URI支持的HTTP方法。
GET方法与POST方法的区别
区别一:
get重点在从服务器上获取资源,post重点在向服务器发送数据;
区别二:
get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?“连接,多个请求数据间用”&"连接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的;post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的;
区别三:
Get传输的数据量小,因为受URL长度限制,但效率较高;
Post可以传输大量数据,所以上传文件时只能用Post方式;
区别四:
get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等;
post较get安全性较高;
区别五:
get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码。
post支持标准字符集,可以正确传递中文字符。
HTTP请求报文与响应报文格式
请求报文包含三部分:
请求行:包含请求方法、URI、HTTP版本信息
请求首部字段
请求内容实体
响应报文包含三部分:
状态行:包含HTTP版本、状态码、状态码的原因短语
响应首部字段
响应内容实体

HTTP状态码
1xx:指示信息–表示请求已接收,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求

200:请求被正常处理
204:请求被受理但没有资源可以返回
206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。
301:永久性重定向
302:临时重定向
303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上
304:发送附带条件的请求时,条件不满足时返回,与重定向无关
307:临时重定向,与302类似,只是强制要求使用POST方法
400:请求报文语法有误,服务器无法识别
401:请求需要认证
403:请求的对应资源禁止被访问
404:服务器无法找到对应资源
500:服务器内部错误
503:服务器正忙
请求和响应过程
服务器与浏览器的交互
浏览器负责发起请求
服务器在 80 端口接收请求
服务器负责返回内容(响应)
浏览器负责下载响应内容
HTTP 的作用就是指导浏览器和服务器如何进行沟通。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值