1、网络分层

2、三次握手与四次挥手
- 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认。
- 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
- 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次挥手”:
- 第一次挥手:客户端发送报文告诉服务器没有数据要发送了。
- 第二次挥手:服务端收到,再发送给客户端告诉它我收到了。
- 第三次挥手:服务端向客户端发送报文,请求关闭连接。
- 第四次挥手:客户端收到关闭连接的请求,向服务端发送报文,服务端关闭连接。
3、 TCP为什么三次握手不是两次握手,为什么两次握手不安全
为了实现可靠数据传输, TCP 协议的通信双方, 都必须维护一个序列号, 以标识发送出去的数据包中, 哪些是已经被对方收到的。 三次握手的过程即是通信双方相互告知序列号起始值, 并确认对方已经收到了序列号起始值的必经步骤。如果只是两次握手, 至多只有连接发起方的起始序列号能被确认, 另一方选择的序列号则得不到确认。
4、 TCP与UDP区别
- TCP 连接:可靠,有序,面向字节流,速度慢;较重量;全双工;适用于文件传输、浏览器等。
- UDP 无连接:不可靠;无序;面向报文;速度快;轻量;适用于即时通讯、视频通话等。
5、 http协议
http协议是一个基于请求与响应模式的无连接,无状态,应用层的协议,支持c/s模式,简单快速,灵活。
- 简单快速:协议简单,通信速度快
- 灵活:允许传输任意类型的数据对象,由Content-Type标记
- 无连接:每次处理一个请求,处理完成后既断开
- 无状态:对事务处理没有记忆能力
6、HTTP请求响应步骤
- 客户端连接到web服务器,建立一个TCP套接字连接;
- 发起HTTP请求,通过TCP套接字,客户端发送一个请求报文;
- 服务器接收请求并返回响应报文;
- 释放TCP连接;
- 客户端解析响应;
7、HTTP的请求报文
HTTP请求报文由请求行、请求报头、空行、请求数据4个部分组成。
8、HTTP请求方法
方法 | 描述 |
---|---|
OPTIONS | 允许客户端查看服务器的性能 |
GET | 请求指定的页面信息,并返回实体主体 |
HEAD | 类似get请求,只是响应体不会被返回,用于获取报头 |
POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。 |
PUT | 向指定资源位置上传其最新内容 |
DELETE | 请求服务器删除Request-URL所标识的资源 |
CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断 |
9、http的get和post的区别
- get通常是从服务器上获取数据,post通常是向服务器传送数据。
- get是把参数数据队列加到表单的 ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到,实际上就是URL拼接方式。post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。
- 对于get方式,服务器端用 Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
- get 传送的数据量较小,不能大于1KB[IE,Oher:4]。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
- get安全性非常低,post安全性较高。
10、HTTPS
- https协议需要到ca申请证书,一般免费证书很少,需要交费。
- http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议;
- http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
网友评论