A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭振 中级黑马   /  2012-5-17 21:26  /  1675 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

http协议怎理解?它与tcp以及udp有什么区别 ?

5 个回复

倒序浏览
  HTTP(超文本传送协议) 是一种通信协议,它允许将超文本标记语言 (HTML) 文档从 Web 服务器传送到 Web 浏览器。
也是一种用于创建文档的标记语言,这些文档包含到相关信息的链接。
   HTTP工作在TCP/IP协议体系中的TCP协议上。
   HTTP请求由三部分组成,分别是:请求行、消息报头、请求正文
   请求方法(所有方法全为大写)有多种,各个方法的解释如下:
  GET     请求获取Request-URI所标识的资源
  POST    在Request-URI所标识的资源后附加新的数据
  HEAD    请求获取由Request-URI所标识的资源的响应消息报头
  PUT     请求服务器存储一个资源,并用Request-URI作为其标识
  DELETE  请求服务器删除Request-URI所标识的资源
  TRACE   请求服务器回送收到的请求信息,主要用于测试或诊断
  CONNECT 保留将来使用
  OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
举例:
  GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源,例如:GET /form.html HTTP/1.1 (CRLF)
  POST方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。
  例如:POST /reg.jsp HTTP/ (CRLF)
      Accept:image/gif,image/x-xbit,... (CRLF)
     HOST:www.guet.edu.cn (CRLF)
     Content-Length:22 (CRLF)
     Connection:Keep-Alive (CRLF)
    Cache-Control:no-cache (CRLF)
    (CRLF)         //该CRLF表示消息报头已经结束,在此之前为消息报头
    user=jeffrey&pwd=1234  //此行以下为提交的数据

TCP和UDP的区别:
TCP协议提供了一种可靠的数据传输服务,它是一种面向连接的数据传输协议。在数据传输之前,通信节点之间必须建立起连接。为确保正确地接收数据,TCP协议要求在目标计算机成功收到数据时发回一个确认(即ACK)。如果在某个时限内未收到相应的ACK,将重新传送数据包。如果网络拥塞,这种重新传送将导致发送的数据包重复。但是,接收电脑可使用数据包的序号来确定它是否为重复数据包,并在必要时丢弃它。UDP协议是一种面向无连接的数据传输服务,它不能保证数据包以正确的顺序被接收。该协议不能保证数据准确无误地到达目的地。UDP在许多方面非常有效。当某个程序的目标是尽快地传输尽可能多的信息时(其中任意给定数据的重要性相对较低),可使用UDP协议。
回复 使用道具 举报
TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。
在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
在传输层中有TCP协议与UDP协议。
在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。
因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
http是超文本传输协议,http协议是“无状态”的,也就是“服务器不知道你客户端干了啥”
TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议。
UDP是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。
网络由下往上分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,TCP、UDP协议对应于传输层,而HTTP协议对应于应用层。

http协议比较复杂详细请看http://blog.csdn.net/dinglang_2009/article/details/7250401

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
呵呵  楼上的已经把HTTP协议说的很详细了,我就不依葫芦画瓢了。简单说一下我对tcp跟udp的看法吧。
tcp和udp都是用来做数据传输的,tcp是一种面向连接的数据传输服务,它需要有客户端与服务器两部分组成,这两部分的建立是通过三次握手,确定两者之间是否建立连接。连接成功后,才会发送数据。这个协议的弊端就是效率低。需要进行三次握手才能建立连接,好处就是可以进行大批量的数据传输,保证了数据的安全性。而UDP则是一种无连接状态的数据传输服务。它的数据传输速度非常快。无须建立连接,以广播的形式传送数据。弊端不能保证数据的安全性。好处呢就是效率高,传输速度快。

就上边两个打个比方来说吧,TCP的传输就好像锁和钥匙,它的三次握手就好像是钥匙插进锁孔开始匹配,是否是该钥匙,建立连接成功就相当于该钥匙打开了这把锁。而UDP的传输就相当于广播,不管你是否打开了这个屏道,它始终会准时播报数据。
回复 使用道具 举报
(HTTP) 是一种通信协议,它允许将超文本标记语言 (HTML) 文档从 Web 服务器传送到 Web 浏览器。HTML 是一种用于创建文档的标记语言,这些文档包含到相关信息的链接。
您可以单击一个链接来访问其它文档、图像或多媒体对象,并获得关于链接项的附加信息。  
 HTTP工作在TCP/IP协议体系中的TCP协议上。   
客户机和服务器必须都支持 HTTP,才能在万维网上发送和接收 HTML 文档并进行交互。

UDP:将数据及目的封装成数据包中,不需要建立连接
每个数据报的大小在限制64K内
因无连接,是不可靠协议
不需要建立连接,速度快
(面向无连接,不关心数据的安全,容易丢失数据不可靠)
TCP:建立连接,形成传输数据的通道
在连接中进行大数据量传输
通过三次握手完成连接,是可靠传输
必须建立连接,效率会稍低
(先确认对方是否存在,再发送数据,如有一方断开连接,则不会再发送数据)
TCP相当于是在打电话
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马