HTTP与TCP/IP的区别

TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“咱们在传输数据时,能够只使用(传输层)TCP/IP协议,可是那样的话,若是没有应用层,便没法识别数据内容,若是想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有不少,好比HTTP、FTP、TELNET等,也能够本身定义应用层协议。WEB使用HTTP协议做应用层协议,以封装HTTP
 文本信息,而后使用TCP/IP作传输层协议将它发到网络上。”java

  术语TCP/IP表明传输控制协议/网际协议,指的是一系列协议。“IP”表明网际协议,TCP和UDP使用该协议从一个网络传送数据包到另外一个网络。把IP想像成一种高速公路,它容许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。 程序员

    你应该能理解,TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议。虽然TCP和UDP都是用来传输其余协议的,它们却有一个显著的不一样:TCP提供有保证的数据传输,而UDP不提供。这意味着TCP有一个特殊的机制来确保数据安全的不出错的从一个端点传到另外一个端点,而UDP不提供任何这样的保证。数据库

    HTTP(超文本传输协议)是利用TCP在两台电脑(一般是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。编程

  下面的图表试图显示不一样的TCP/IP和其余的协议在最初OSI模型中的位置:浏览器

7缓存

应用层安全

例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP服务器

6网络

表示层socket

例如XDR、ASN.一、SMB、AFP、NCP

5

会话层

例如ASAP、TLS、SSH、ISO
 8327 / CCITT X.22五、RPC、NetBIOS、ASP、Winsock、BSD
 sockets

4

传输层

例如TCP、UDP、RTP、SCTP、SPX、ATP、IL

3

网络层

例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、 X.25

2

数据链路层

例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE
 802.十一、FDDI、PPP

1

物理层

例如线路、无线电、光纤、信鸽
 
一、HTTP协议的几个重要概念
 1.链接(Connection):一个传输层的实际环流,它是创建在两个相互通信的应用程序之间。
 2.消息(Message):HTTP通信的基本单位,包括一个结构化的八元组序列并经过链接传输。
 3.请求(Request):一个从客户端到服务器的请求信息包括应用于资源的方法、资源的标识符和协议的版本号
 4.响应(Response):一个从服务器返回的信息包括HTTP协议的版本号、请求的状态(例如“成功”或“没找到”)和文档的MIME类型。
 5.资源(Resource):由URI标识的网络数据对象或服务。
 6.实体(Entity):数据资源或来自服务资源的回映的一种特殊表示方法,它可能被包围在一个请求或响应信息中。一个实体包括实体头信息和实体的自己内容。
 7.客户机(Client):一个为发送请求目的而创建链接的应用程序。
 8.用户代理(Useragent):初始化一个请求的客户机。它们是浏览器、编辑器或其它用户工具。
 9.服务器(Server):一个接受链接并对请求返回信息的应用程序。
 10.源服务器(Originserver):是一个给定资源能够在其上驻留或被建立的服务器。
 11.代理(Proxy):一个中间程序,它能够充当一个服务器,也能够充当一个客户机,为其它客户机创建请求。请求是经过可能的翻译在内部或通过传递到其它的服务器中。一个代理在发送请求信息以前,必须解释而且若是可能重写它。
 代理常常做为经过防火墙的客户机端的门户,代理还能够做为一个帮助应用来经过协议处理没有被用户代理完成的请求。
 12.网关(Gateway):一个做为其它服务器中间媒介的服务器。与代理不一样的是,网关接受请求就好象对被请求的资源来讲它就是源服务器;发出请求的客户机并无意识到它在同网关打交道。
 网关常常做为经过防火墙的服务器端的门户,网关还能够做为一个协议翻译器以便存取那些存储在非HTTP系统中的资源。
 13.通道(Tunnel):是做为两个链接中继的中介程序。一旦激活,通道便被认为不属于HTTP通信,尽管通道多是被一个HTTP请求初始化的。当被中继的链接两端关闭时,通道便消失。当一个门户(Portal)必须存在或中介(Intermediary)不能解释中继的通信时通道被常用。
 14.缓存(Cache):反应信息的局域存储。
 2.发送请求
 打开一个链接后,客户机把请求消息送到服务器的停留端口上,完成提出请求动做。
 HTTP/1.0 请求消息的格式为:
 请求消息=请求行(通用信息|请求头|实体头)CRLF[实体内容]
 请求 行=方法 请求URL HTTP版本号 CRLF
 方 法=GET|HEAD|POST|扩展方法
 U R L=协议名称+宿主名+目录与文件名
 请求行中的方法描述指定资源中应该执行的动做,经常使用的方法有GET、HEAD和POST。不一样的请求对象对应GET的结果是不一样的,对应关系以下:
 对象 GET的结果
 文件 文件的内容
 程序 该程序的执行结果
 数据库查询 查询结果
 HEAD??要求服务器查找某对象的元信息,而不是对象自己。
 POST??从客户机向服务器传送数据,在要求服务器和CGI作进一步处理时会用到POST方法。POST主要用于发送HTML文本中FORM的内容,让CGI程序处理。
 一个请求的例子为:
 GEThttp://networking.zju.edu.cn/zju/index.htmHTTP/1.0 networking.zju.edu.cn/zju/index.htmHTTP/1.0 头信息又称为元信息,即信息的信息,利用元信息能够实现有条件的请求或应答。
 请求头??告诉服务器怎样解释本次请求,主要包括用户能够接受的数据类型、压缩方法和语言等。
 实体头??实体信息类型、长度、压缩方法、最后一次修改时间、数据有效期等。
 实体??请求或应答对象自己。
 3.发送响应
 服务器在处理完客户的请求以后,要向客户机发送响应消息。
 HTTP/1.0的响应消息格式以下:
 响应消息=状态行(通用信息头|响应头|实体头) CRLF 〔实体内容〕
 状态行=HTTP版本号 状态码 缘由叙述
 状态码表示响应类型
 1×× 保留
 2×× 表示请求成功地接收
 3×× 为完成请求客户需进一步细化请求
 4×× 客户错误
 5×× 服务器错误
 响应头的信息包括:服务程序名,通知客户请求的URL须要认证,请求的资源什么时候能使用。
 4.关闭链接
 客户和服务器双方均可以经过关闭套接字来结束TCP/IP对话

 

 

 

计算机网络是什么?

简单地理解,计算机网络的任务就是传输数据。为了完成这一复杂的任务,国际标准化组织ISO提供了OSI参考模型,这种模型把互联网网络氛围7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每一个曾有明确的分工,而且在层与层之间,下层为上层提供服务。这种分层的思想简化了网络系统的设计过程,例如在设计应用层时候只须要考虑建立知足用户实际需求的应用;在设计传输层时,只须要考虑如何在两个主机之间传输数据;在设计网络层时,只须要考虑如何在网络上找到一条发送数据的路径,即路由。

因为OSI参考模型过于庞大和复杂,使它难以投入到实际运用中。与OSI参考模型类似的TCP/IP参考模型洗去了网络分层的思想,可是对网络的层次作了简化,而且在网络各层(除了主机-网络层外)都提供了完善的协议,这些协议构成了TCP/IP协议集,简称TCP/IP协议。TCP/IP参考模型氛围4个层:应用层、传输层、网络互联层和主机-网络层。在每一层都有相应的协议,IP协议和TCP协议是协议集中最核心的两个协议。

IP协议位于网络互联曾,用IP地址来标识网络上的各个主机,IP协议把数据氛围若干数据包,而后为这些数据包肯定合适的路由。路由就是把数据包从源主机发送到目标主机的路径。

TCP协议位于传输层,保证两个进程之间可靠地传输数据。每当两个进程之间进行通讯,就会创建一个TCP链接,TCP协议用端口来标识TCP链接的两个端点。在传输层还有一个UDP协议,它与TCP协议的区别是,UDP不保证可靠地传输数据。

创建在TCP/IP协议基础上的网络程序通常都采用客户端/服务器通讯模拟股市。服务器提供服务,客户程序得到服务。服务器程序通常昼夜运行,时刻等待客户的请求并及时做出响应。

Java网络程序致力于实现应用层,传输层向应用层提供了套接字Socket接口,Socket封装了下层的数据传输细节,应用层的程序经过Socket来创建与远程主机的链接,以及进行数据传输。在Java中,有三种套接字类:java.net.Socket、java.net.ServerSocket和DatagramSocket。其中Socket和ServerSocket类创建在TCP协议基础上;DatagramSocket类创建在UDP协议基础上。socket链接和http链接的区别简单说,你浏览的网页(网址以http://开头)都是http协议传输到你的浏览器的, 而http是基于socket之上的。socket是一套完成tcp,udp协议的接口。HTTP协议:简单对象访问协议,对应于应用层  ,HTTP协议是基于TCP链接的tcp协议:    对应于传输层ip协议:     对应于网络层 TCP/IP是传输层协议,主要解决数据如何在网络中传输;而HTTP是应用层协议,主要解决如何包装数据。Socket是对TCP/IP协议的封装,Socket自己并非协议,而是一个调用接口(API),经过Socket,咱们才能使用TCP/IP协议。http链接:http链接就是所谓的短链接,即客户端向服务器端发送一次请求,服务器端响应后链接即会断掉;socket链接:socket链接就是所谓的长链接,理论上客户端和服务器端一旦创建起链接将不会主动断掉;可是因为各类环境因素可能会是链接断开,好比说:服务器端或客户端主机down了,网络故障,或者二者之间长时间没有数据传输,网络防火墙可能会断开该链接以释放网络资源。因此当一个socket链接中没有数据的传输,那么为了维持链接须要发送心跳消息~~具体心跳消息格式是开发者本身定义的咱们已经知道网络中的进程是经过socket来通讯的,那什么是socket呢?socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,均可以用“打开open –> 读写write/read –> 关闭close”模式来操做。个人理解就是Socket就是该模式的一个实现,socket便是一种特殊的文件,一些socket函数就是对其进行的操做(读/写IO、打开、关闭),这些函数咱们在后面进行介绍。 Socket链接与HTTP链接咱们在传输数据时,能够只使用(传输层)TCP/IP协议,可是那样的话,若是没有应用层,便没法识别数据内容,若是想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有不少,好比HTTP、FTP、TELNET等,也能够本身定义应用层协议。WEB使用HTTP协议做应用层协议,以封装HTTP文本信息,而后使用TCP/IP作传输层协议将它发到网络上。1)Socket是一个针对TCP和UDP编程的接口,你能够借助它创建TCP链接等等。而TCP和UDP协议属于传输层 。 而http是个应用层的协议,它实际上也创建在TCP协议之上。  (HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通讯的能力。) 2)Socket是对TCP/IP协议的封装,Socket自己并非协议,而是一个调用接口(API),经过Socket,咱们才能使用TCP/IP协议。Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而造成了咱们知道的一些最基本的函数接口。下面是一些的重要的概念,特在此作摘抄和总结。一。什么是TCP链接的三次握手第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时本身也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。握手过程当中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP链接一旦创建,在通讯双方中的任何一方主动关闭链接以前,TCP 链接都将被一直保持下去。断开链接时服务器和客户端都可以主动发起断开TCP链接的请求,断开过程须要通过“四次握手”(过程就不细写了,就是服务器和客户端交互,最终肯定断开)二。利用Socket创建网络链接的步骤创建Socket链接至少须要一对套接字,其中一个运行于客户端,称为ClientSocket ,另外一个运行于服务器端,称为ServerSocket 。套接字之间的链接过程分为三个步骤:服务器监听,客户端请求,链接确认。1。服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待链接的状态,实时监控网络状态,等待客户端的链接请求。2。客户端请求:指客户端的套接字提出链接请求,要链接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要链接的服务器的套接字,指出服务器端套接字的地址和端口号,而后就向服务器端套接字提出链接请求。3。链接确认:当服务器端套接字监听到或者说接收到客户端套接字的链接请求时,就响应客户端套接字的请求,创建一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式创建链接。而服务器端套接字继续处于监听状态,继续接收其余客户端套接字的链接请求。三。HTTP连接的特色HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网经常使用的协议之一,HTTP协议是创建在TCP协议之上的一种应用。HTTP链接最显著的特色是客户端发送的每次请求都须要服务器回送响应,在请求结束后,会主动释放链接。从创建链接到关闭链接的过程称为“一次链接”。四。TCP和UDP的区别1。TCP是面向连接的,虽说网络的不安全不稳定特性决定了多少次握手都不能保证链接的可靠性,但TCP的三次握手在最低限度上(实际上也很大程度上保证了)保证了链接的可靠性;而UDP不是面向链接的,UDP传送数据前并不与对方创建链接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,固然也不用重发,因此说UDP是无链接的、不可靠的一种数据传输协议。2。也正因为1所说的特色,使得UDP的开销更小数据传输速率更高,由于没必要进行收发数据的确认,因此UDP的实时性更好。

相关文章
相关标签/搜索