web入门基础知识

Python知识总结

1. 什么是TCP,什么是UDP,他们两者有什么区别?

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。

UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议。UDP是OSI参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是IP协议与上层协议的接口。

区别:

1、TCP是面向连接的,两者通信需要建立连接,端对端的传输。UDP是面向无连接的,发送数据之前不需要建立连接。

2、TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP不保证可靠交付。

3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。

4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信

5、TCP对系统资源要求较多,UDP对系统资源要求较少。

2. TCP的三次握手和四次挥手?

sanci.PNG

seq是序列号,这是为了连接以后传送数据用的,ack是对收到的数据包的确认,值是等待接收的数据包的序列号。SYN:同步序列编号(Synchronize Sequence Numbers)。

第一次握手:建立连接时,客户端发送syn包(syn=1)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=1),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

sici.PNG

1、客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。

2、服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。

3、客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。

4、服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。

5、客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2*MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。

6、服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。

3. HTTP和HTTPS协议的不同之处?

l HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

l HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

l HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

两者区别:

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。

1、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

2、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

3、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

4. HTTP八种请求方式

方法 描述
get 请求指定的页面信息。(向服务器请求指定的资源)
head 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
post 向指定资源提交数据进行处理请求,例如提交表单或者上传文件。数据被包含在请求体中。post请求可能会导致新的资源的建立或已有资源的修改。
put 向服务器上传指定的内容
delete 请求服务器删除Request-URL所标识的资源。
connect HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
options 返回服务器对指定资源数据支持的HTTP请求方法,一般用于测试服务器功能的可用性。
trace 回显服务器收到的请求,主要用于测试或诊断

get和post的区别?

  1. GET提交的数据会放在URL之后,以?分隔URL和传输数据,参数之间以&相连,如https://www.baidu.com/s?ie=UTF-8&wd=wsgi

  2. 提交参数的大小不同。GET产生一个TCP数据包;POST产生两个TCP数据包。

  3. 安全问题

GET方式提交数据,会带来安全问题,因为参数是裸露在地址栏上,所以不安全。

POST方式参数在body中,所以安全性较高。(注意:在http协议下,不管哪种提交方式,都是明码提交,只要有抓包工具,都能抓取数据。)

  1. 是否浏览器可以收藏

GET请求因为参数在地址栏上,因此可以收藏。而POST请求不行,不能被浏览器收藏,因为参数无法被浏览器保存。

5. URI与URL?

URI:(Uniform Resource Identifier),统一资源标识符。HTTP使用URI来传输数据和建立连接。
URL:(Uniform Resource Location),统一资源定位符。是一种特殊类型的URI,包含了用于查找某个资源的足够的信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容