网络结构

image.png
应用层: 这一层就是上层应用使用的协议。比如HTTP协议,FTP协议,SMTP协议等。
传输层: 从物理层到传输层这三层都是负责建立网络连接,发送数据。他们并不关心应用层使用什么协议。
传输层使用的就是TCP和UDP协议。
网络层: 这一层负责选择路由路径。条条大路通罗马嘛,所以从相同的出发地到相同的目的地 也会有很多种路径,网络层就负责选择一条数据通行的路径。
物理层: 这一层负责数据的发送。这是最底层的网卡负责的。网卡把数据转换成高/低电平,然后通过网线发送出去。
image.png

应用层

HTTP

自 HTTP 协议发明到现在,经过了几次版本修改,分别是HTTP/0.9,HTTP/1/0,HTTP/1.1以及HTTP/2。
现在市面上主要还是 HTTP/1.1

https://www.imooc.com/read/57/article/1231
image.png

传输层

其他

1. 一次发请求的过程

image.png
上图就是一个典型的 web 请求流程,主要分为五个步骤:

  1. 浏览器本身作为一个客户端,当你输入 www.weibo.com 的时候,向 DNS 服务器发出域名请求服务;
  2. DNS 服务器将域名将对应的 IP 地址返回给浏览器;
  3. 浏览器使用 IP 地址找到对应的服务器后,建立 TCP 连接,向服务器发送 HTTP 请求;
  4. 服务器接收到请求之后才开始处理,返回 HTTP 响应;
  5. 浏览器收到来自服务器的响应后开始渲染页面,最后断开与该服务器之间的 TCP 连接。

2. GET和POST是没有区别的

如果你愿意,GET 请求也可以有 Request body,你可以请求参数放到 Request body 中是完全可以的。

同样地,你也可以在 POST 请求的 URL 中加入请求参数。

GET 和 POST 参数长度问题。这些长度并不是 HTTP 规定的,而是浏览器和服务器自己的规定,和 HTTP 协议没有一毛钱的关系。