当我们在浏览器输入一个网址,然后按下回车,接下来浏览器显示了页面。网速好的话这之间可能就一秒,但在这一秒内到底发生了什么?
Http的工作原理可简单的归纳如下:
1.连接:用户在浏览器输入一个URL地址,要在服务器端与客户器端建立连接,连接建立需要IP地址和端口号,所以在这之前浏览器通过DNS(域名解析协议)将域名解析成为ip地址,如果url里不包含端口号,则会使用该协议的默认端口号;然后根据 IP 地址在互联网上找到对应的服务器,三次握手建立tcp连接;
DNS的过程是这样的:首先我们知道我们本地的机器上在配置网络时都会填写DNS,这样本机就会把这个url发给这个配置的DNS服务器,如果能够找到相应的url则返回其ip,否则该DNS将继续将该解析请求发送给上级DNS,整个DNS可以看做是一个树状结构,该请求将一直发送到根直到得到结果。现在已经拥有了目标ip和端口号,这样我们就可以打开socket连接了。
2.请求:连接成功后,客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档;这个请求一般是GET或POST命令(POST用于FORM参数的传递)。GET命令的格式为:GET 路径/文件名 HTTP/1.0 文件名指出所访问的文件,HTTP/1.0指出Web浏览器使用的HTTP版本。现