TCP/IP/HTTP

Jul 26, 2015


学习一下 TCP/IP/HTTP三大协议


####TCP/IP:

  • 互联网协议包含了上百种协议标准,但是最重要的两个协议是TCP和IP协议,所以,大家把互联网的协议简称TCP/IP协议。

  • 通信的时候,双方必须知道对方的标识,好比发邮件必须知道对方的邮件地址。互联网上每个计算机的唯一标识就是IP地址,类似123.123.123.123。如果一台计算机同时接入到两个或更多的网络,比如路由器,它就会有两个或多个IP地址,所以,IP地址对应的实际上是计算机的网络接口,通常是网卡。

  • IP协议负责把数据从一台计算机通过网络发送到另一台计算机。数据被分割成一小块一小块,然后通过IP包发送出去。由于互联网链路复杂,两台计算机之间经常有多条线路,因此,路由器就负责决定如何把一个IP包转发出去。IP包的特点是按块发送,途径多个路由,但不保证能到达,也不保证顺序到达。
  • 一个IP包除了包含要传输的数据外,还包含源IP地址和目标IP地址,源端口和目标端口。
  • TCP协议则是建立在IP协议之上的。TCP协议负责在两台计算机之间建立可靠连接,保证数据包按顺序到达。TCP协议会通过握手建立连接,然后,对每个IP包编号,确保对方按顺序收到,如果包丢掉了,就自动重发。
  • 许多常用的更高级的协议都是建立在TCP协议基础上的,比如用于浏览器的HTTP协议、发送邮件的SMTP协议等。

####HTTP:

  • HTTP是在网络上传输HTML的协议,用于浏览器和服务器的通信。
  • HTTP响应分为Header和Body两部分(Body是可选项)

    • Request Headers表示浏览器发送给服务器的请求头:

      方法:GET还是POST,GET仅请求资源,POST会附带用户数据;

      路径:/full/url/path;

      域名:由Host头指定:Host: www.sina.com.cn

      以及其他相关的Header;

      如果是POST,那么请求还包括一个Body,包含用户数据。

    • Response Headers是浏览器接收到的服务器的响应头:

      响应代码:200表示成功,3xx表示重定向,4xx表示客户端发送的请求有错误,5xx表示服务器端处理时发生了错误;

      响应类型:由Content-Type指定;

      以及其他相关的Header;

      通常服务器的HTTP响应会携带内容,也就是有一个Body,包含响应的内容,网页的HTML源码就在Body中。

  • 当浏览器读取到HTML源码后,它会解析HTML,显示页面,然后,根据HTML里面的各种链接,再发送HTTP请求给服务器,拿到相应的图片、视频、Flash、JavaScript脚本、CSS等各种资源,最终显示出一个完整的页面。

  • Web采用的HTTP协议采用了非常简单的请求-响应模式,从而大大简化了开发。当我们编写一个页面时,我们只需要在HTTP请求中把HTML发送出去,不需要考虑如何附带图片、视频等,浏览器如果需要请求图片和视频,它会发送另一个HTTP请求,因此,一个HTTP请求只处理一个资源。

  • HTTP协议同时具备极强的扩展性,虽然浏览器请求的是比如http://www.sina.com.cn/的首页,但是新浪在HTML中可以链入其他服务器的资源,比如图标,从而将请求压力分散到各个服务器上,并且,一个站点可以链接到其他站点,无数个站点互相链接起来,就形成了World Wide Web,简称WWW。


参考文章:廖雪峰的官方网站


结语:

坚持每天进步一点点…