怎么才叫熟悉http协议?
June 28, 2018
“熟悉http协议”,肯定很多IT小伙伴都在招聘岗位上看得到过,但是怎么才叫熟悉http协议呢?抽空梳理了一下,也算是对这一部分知识的笔记吧!
可能对于大部分人来说,网络web编程就是使用一些第三方库来进行请求和响应的处理,再多说一点就是这个URI
要使用POST
方法,对于携带的数据需要处理成为formdata
。
基础知识 #
Q1: HTTP协议是什么?用来干什么?
HTTP协议是基于TCP/IP协议的应用层协议,主要规定了客户端和服务端之间的通信格式。主要作用也就是传输数据(HTML,图片,文件,查询结果)。
#网络分层 #
互联网的实现分成了几层,如何分层有不同的模型(七层,五层,四层),这里按五层模型来解释:
(靠近用户)应用层 < 传输层 < 网络层 < 链接层 < 物理层(靠近硬件)
层级 | 作用 | 拥有协议 |
---|---|---|
物理层 | 传送电信号0 1 | 无 |
数据链路层 | 定义数据包;网卡MAC地址;广播的发送方式; | Ethernet 802.3; Token Ring 802.5 |
网络层 | 引进了IP地址,用于区分不同的计算机是否属于同一网络 | IP; ARP; RARP |
传输层 | 建立端口到端口的通信,实现程序时间的交流,也就是socket | TCP; UDP |
应用层 | 约定应用程序的数据格式 | HTTP; FTP; DNS |
每一层级,都是解决问题而诞生的,也就是他们各自作用对应的问题,推荐参考资料中的“互联网协议入门”。
#HTTP通信流程 #
#拓展–三次握手和四次挥手 #
经常在其他地方看到这些,一直不知道了解这部分有什么用,但是syn Flood
攻击,恰恰是利用了TCP三次握手中的环节。利用假IP伪造SYN
请求,服务端会多次尝试发送SYN-ACK
给客户端,但是IP并不存在也就无法成功建立连接。在一定时间内伪造大量这种请求,会导致服务器资源耗尽无法为正常的连接服务。(注:服务器SYN连接数量有限制,SYN-ACK超时重传机制)
三次握手流程:
...
- The client requests a connection by sending a SYN (synchronize) message to the server.
- The server acknowledges this request by sending SYN-ACK back to the client.
- The client responds with an ACK, and the connection is established.