4-23 与服务器交互的基本方法
Http协议里定了很多与服务器交互的方法,GET,POST,PUT,DELETE是其中最基本的方法,对应着数据的查,改,增,删.
GET与POST的不同之处:
1. Get传输数据在url中用?分割,而Post则是将数据放在http body中
2. Get传输数据有大小上线,而Post没有
3. Get方法获取数据使用Request.QueryString而Post方法使用Request.Body
4. Get传输数据不安全可能在缓存或是url中可以看出来
4-26 OSI 7层参考模型 与 TCP/IP体系结构
OSI 7层
1. 物理层
2. 数据链路层
3. 网络层
4. 运输层
5. 会话层
6. 表示层
7. 应用层
TCP/IP 体系结构 4层
1. 网络接口层
2. 网际层
3. 运输层(TCP/UDP)
4. 应用层(HTTP/FTP)
4-26 常见状态码
200 成功连接
400 访问的页面域名不存在或者请求错误
401 未授权
403 没有权限访问此站
404 没有找到链接
405 请求行中指定的请求方法不能被用于请求相应的资源
415 服务器无法处理请求附带的媒体格式
4-28 UDP与TCP的基本区别
1.TCP有连接 UDP无连接
2.TCP要求系统资源多 UDP要求系统资源少
3.TCP不容易丢包且保证顺序 UDP不保证丢包和顺序
4.TCP流模式 UDP数据报模式
4-30 一个Http请求
DNS域名解析–>TCP三次握手–>建立TCP连接后发起的http请求–>服务器响应请求,返回对应html代码–>浏览器解析代码,请求资源(css,jpg)–>浏览器对页面进行渲染.
设计存储海量数据的存储系统:设计一个叫做”中间层”的逻辑层,这个层用来缓存从数据库得到的海量数据,当有新的数据进来时,也先进行缓存,再持久化到数据库中.主要的步骤是负载均衡,将不同用户的请求分发到不同的处理节点,然后先存储缓存,定期向数据库更新数据.读写的过程采用类似乐观锁。
5-4 TCP/IP三次握手
客户端 –>服务端 SYN(seq=x) 请求连接
服务端 –>客户端 SYN,ACK(seq=y,ack=x+1),此时服务端开始建立缓存区
客户端 –>服务端 ACK(ack=y+1)
此时 客户端 服务端 进入ESTABLISHED(TCP建立成功)
为什么不是两次?
假设客户端发送一个握手的时候,时间过长失效,但也会传递到服务端.此时服务器认为客户端想建立连接,于是进行第二次握手,在只有两次握手的时候,客户端不会理会,于是服务端一直等待客户端发送信息,造成资源浪费.但在三次握手的时候,客户端会发送拒绝信息过去.
5-4 TCP/IP 四次挥手
客户端 –> 服务端 FIN
服务端 –> 客户端 ACK
服务端 –> 客户端 FIN
客户端 –> 服务端 ACK
为什么结束时要四次挥手 多出的一次时第三次挥手 因为客户端发送终止请求服务器发送收到请求的时候,可能服务器依然在接受包,不可能终止连接,于是要等待到所有包都被服务端接受之后,在发送终止请求,告诉客户端可以终止了.