TCP与http题

1.tcp和udp的区别,tcp怎么保证可靠连接的,出现网络拥塞怎么解决?

2.tcp和udp的报文结构了解吗?

3.tcp连接client和server有哪些状态?time_wait状态?

4.虚拟内存,虚拟地址和物理地址怎么转换?内存分段,内存分页,优缺点

5.linux最多可以建立多少个tcp连接,client端,server端,超过了怎么办?

6.为什么连接的时候是三次握手,关闭的时候却是四次握手?

答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,“你发的FIN报文我收到了”。只有等到Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四次握手。

7.tcp四次握手过程?为什么等待2MSL?

8.tcp握手挥手过程,以及socket的状态变化?

9.OSI七层模型与TCP/IP五层模型?

10。TCP与UDP区别和应用场景?基于TCP协议有哪些?基于UDP协议有哪些?

11.TCP三次握手过程以及每次握手后的状态改变,为什么三次?为什么两次不行?

 

 

htttp

1.https请求流程,如何获取最初的证书

HTTP协议处于网络协议的应用层,底层通过TCP/IP协议支持。HTTP请求基本过程为:
1.域名解析
2.三次握手创建TCP连接
3.服务器响应传输数据
4.四次挥手断开连接

HTTPS是基于HTTP的,不同的是他在TCP/IP协议上面又新加了一层SSL

SSL层是为了保证HTTPS传输过程的安全性的。保证的方式在于他传输数据之前先传输一套对称密钥,然后通过这个对称密钥来加密一个key,再使用这个key来加密需要传输的数据,以此达到第三人不可解密和更改的目的。机密过程如下:

avatar

1、客户端发送请求https连接。
2、服务器返回加密公钥,通常是SSL证书。
3、客户端从这个SSL证书解析出公钥,并随机生成一个key,通过公钥加密这个key发送给服务器(这一步是安全的因为只有服务器才有私钥能读出这个key)。
4、服务器通过私钥解密出key。
5、客户端使用这个key来加密需要传输的数据。
6、服务器使用key来解析数据。
 

2.http请求头

HTTP 请求报文由3部分组成(请求行+请求头+请求体)

请求行

①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。

②为请求对应的URL地址,它和报文头的Host属性组成完整的请求URL。

③是协议名称及版本号

请求头:

④是HTTP的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。

与缓存相关的规则信息,均包含在header中

Cache-Control,指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据,还是重新发请求到服务器获取数据。

    常见值有private、no-cache、max-age、must-revalidate等,默认为private。

        值为private或must-revalidate则只有第一次访问时会访问服务器,以后就不再访问。

        值为no-cache,那么每次都会访问。

        值为max-age,则在过期之前不会重复访问。

请求体:

⑤是报文体,它将一个页面表单中的组件值通过param1=value1&param2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。不但报文体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html? param1=value1&param2=value2”的方式传递请求参数。

3.状态码301、302、401、403(http返回码,401和406啥区别?)

 已定义范围分类
1XX100-101信息提示
2XX200-206成功
3XX300-305重定向
4XX400-415客户端错误
5XX500-505服务器错误

常见的状态码

200 OK 服务器成功处理了请求(这个是我们见到最多的)
301/302 Moved Permanently(重定向)请求的URL已移走。Response中应该包含一个Location URL, 说明资源现在所处的位置
304 Not Modified(未修改)客户的缓存资源是最新的, 要客户端使用缓存
404 Not Found 未找到资源

501 Internal Server Error服务器遇到一个错误,使其无法对请求提供服务

 

 

 

 

 

 

状态码状态消息含义实例
401Unauthorized(未授权)需要客户端对自己认证HTTP协议之基本认证-401
403Forbidden(禁止)请求被服务器拒绝了 
406Not Acceptable(无法接受)  

 

 

4.http 1.0、 http 1.1、http 2.0区别

HTTP1.1在HTTP1.0基础上的改进

1. 长连接

HTTP 1.0需要使用keep-alive参数来建立一个长连接,而HTTP1.1默认支持长连接
长连接的好处:一个网页上可能有多个资源对象,长连接可以通过一个连接传输网页上的所有对象,而短连接每次连接只能传输一个对象,也就是一个网页的内容需要传输多次

2. 缓存

HTTP1.0缓存的资源对象到了一定时间之后会失效,不能再次使用;而HTTP1.1缓存的资源对象失效后还能与源服务器进行重新激活。

3. 带宽使用

HTTP/1.0一次只能请求一整个资源对象,而HTTP/1.1可以请求一个资源对象的一部分,因此在不需要得到整个资源对象时,可节约带宽,而且支持断点续传

4. Host域

由于一台物理服务器上可以存在多个虚拟主机,并且它们共享一个IP地址,因此HTTP1.1在HTTP1.0的基础上加了改进,加了一个Host域,用于指定共享同一个IP地址中的某一台主机,而HTTP1.0则默认一个IP地址只能属于一台主机,没有Host域

HTTP2.0在HTTP1.1基础上的改进

1. 多路复用

HTTP2.0同一个连接可以并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级,这意味着减少了建立连接所需要的开销

2. 数据压缩

HTTP的请求和响应包括三个部分,即状态行,头部信息,消息主体。HTTP1.1只对消息主体进行压缩,而HTTP2.0对状态行,头部信息,消息主体都进行压缩

3. 服务器推送
在使用HTTP1.1时,客户端请求什么资源,服务器才给什么;而HTTP2.0服务器会自动把客户端一定需要的资源传输给客户端,比如一些必要的附加资源等等

5.http与https区别

HTTP与HTTPS的一些区别

HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费。

HTTP协议运行在TCP之上,所有传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上,所有传输的内容都经过加密的

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

HTTPS可以有效的防止运营商劫持,解决了防劫持的一个大问题。

 

6.https原理,数字签名,数字证书,非对称加密算法过程,有什么问题

3.为什么大部分服务对外不提供的接口都是http的?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值