今日内容
对TCP/IP协议和HTTP协议的区分,及各自的作用和相互的联系
正文
软件结构
C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。
B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。
网络通讯协议
网络通信协议:通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换。
网络通信协议包括:
1、TCP/IP协议:目前广泛使用的
2、IPX/SPX及其兼容协议
3、NetBEUI协议
网络通讯协议使用最广泛的是以上三个。其中,TCP/IP协议是最常用且最
重要的。
网络通讯三大要素:
协议 端口号 IP
包括TCP/IP协议在内的网络通讯协议都必须遵守的规则。
TCP/IP协议
TCP/IP协议:传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol),是Internet最基本、最广泛的协议
。它定义了计算机如何连入因特网,以及数据如何在它们之间传输的标准,TCP(传输控制协议)和IP(网际协议)。它的内部包含一系列的用于处理数据通信的协议,并采用了4层的分层模型**,每一层都呼叫它的下一层所提供的协议**来完成自己的需求。
至此,你的脑海里面必须有这个意识:TCP/IP协议包括传输层TCP协议和应用层HTTTP协议。
TCP/IP、TCP、HTTP关系
TCP/IP协议负责两台电脑的整体上的通讯。
有一点你必须清楚:TCP/IP协议是一个协议的集合,包括TCP协议和IP协议
和HTTP协议在内的诸多协议。
- TCP/IP协议包括TCP协议和HTTP协议;
- 然而,具体的来说:TCP负责传输层方面保证数据可以进行正常传输;
HTTP负责两端的数据是以什么样的格式进行传输。
TCP/IP协议必须首先保证数据是可以正常的在两台电脑之间进行传输,其次才有能力去规定数据到底是用一种什么样的格式去传输。也就是说:HTTP协议是基于TCP/IP协议上的;TCP/IP协议都没有,何来HTTP协议。
使用传输层TCP协议(Socket)
既然我们进行通讯,那前提肯定是两端最起码可以正常传输数据.
但是我们不会写传输层tcp协议,我们不知道怎么使用tcp/ip协议建立最起码的数据传输操作啊。此时,socket油然而生。
socket是什么
socket编程指的不仅仅是Java语言,是所有的网络通讯。
比如:你看到哪个协议说是专门针对Java的,协议是适应所有的通讯。
Java有他自己的socket接口,c#也有自己的socket接口。
你想要建立通信,但是具体的做法太难。因此,有人帮我们把具体的通讯做了封装。我们只需要调用他提供的方法就可以达到两端正常传输数据的效果。这个封装就是socket,他是一种抽象层的接口,只要我们按照通信的规则去调用他对应的接口,就完全可以达到最基本的数据正常在两端传输。
socket的出现,代表我建立成功了两端正常通信,说明此时数据可以进行传输了。
后面讲的http协议,都是在socket的基础上进行的
;毕竟,传输都没有成功,你定义的所谓的传输数据的规范又有何意义。
HTTP协议
http协议基于TCP/IP协议之上的。
他规定了客户端发送什么样格式的数据给服务器,又规定了服务端以什么样格式的数据返回给客户端。
http协议普遍的被用到我们的web的开发。表面上我们只是在客户端前台发送了一些简单的数据给后台服务器端;但是在我们的客户端浏览器会自动把你发送的数据以http协议规范给你进行封装,然后发送给服务器;并且我们的服务器会按照http协议对你的数据进行解析,最后返回给前台页面的数据也是封装成http规定的格式的。
http协议是应用层协议,客户端和服务器端都必须遵守;规定客户端以http协议对数据封装,要求服务器端以http协议进行解析。
消息请求的规范:请求行/请求头/请求空行/请求体
消息响应的规范:响应行/响应头/响应空行/响应体