Http协议学习总结

合集下载

http协议学习和总结系列【协议详解篇】

http协议学习和总结系列【协议详解篇】

蜜果私塾:http协议学习系列——协议详解篇文:阿蜜果日期:2009-12-22. 协议详解篇2.1 HTTP/1.0和HTTP/1.1的比较RFC 1945定义了HTTP/1.0版本,RFC 2616定义了HTTP/1.1版本。

笔者在blog上提供了这两个RFC中文版的下载地址。

RFC1945下载地址:/Files/amigoxie/RFC1945(HTTP)中文版.rarRFC2616下载地址:/Files/amigoxie/RFC2616(HTTP)中文版.rar2.1.1建立连接方面HTTP/1.0 每次请求都需要建立新的TCP连接,连接不能复用。

HTTP/1.1 新的请求可以在上次请求建立的TCP连接之上发送,连接可以复用。

优点是减少重复进行TCP三次握手的开销,提高效率。

注意:在同一个TCP连接中,新的请求需要等上次请求收到响应后,才能发送。

2.1.2 Host域HTTP1.1在Request消息头里头多了一个Host域, HTTP1.0则没有这个域。

Eg:GET /pub/WWW/TheProject.html HTTP/1.1Host: 可能HTTP1.0的时候认为,建立TCP连接的时候已经指定了IP地址,这个IP地址上只有一个host。

2.1.3日期时间戳(接收方向)无论是HTTP1.0还是HTTP1.1,都要能解析下面三种date/time stamp:Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format(发送方向)HTTP1.0要求不能生成第三种asctime格式的date/time stamp;HTTP1.1则要求只生成RFC 1123(第一种)格式的date/time stamp。

http协议-总结

http协议-总结

HTTP协议1.http(HyperText Transfer Protocol):超文本传输协议,2.是工作在TCP/IP协议基础上的,3.http是TCP/IP的应用层的协议,web开发的基础4.http/1.0短连接,http/1.1长连接(timeout)5.请求次数:第一次本身,以后每一图片一次(有个图床的概念),但是名字一样的图片就取一次HTTP协议的请求(request)请求行GET /http/http1.html HTTP/1.1 【发送的是get请求,请求的资源是http/http1.html】消息头Accept:*/* 【表示客户端可以接受任何数据】Referer:http://localhost:80/test/abc.html 【表示你是从哪里来的】Accept-Language:zh-cn 【页面支持的语言】User-Agent:Mozilla/4.0 【告诉服务器我的浏览器的内核和操作系统】Accept-Encoding:gzip,deflate 【表示接受什么样的数据压缩格式】Host:localhost:80 【告诉主机是谁】Connection:Keep-Alive 【表示是个长连接,不要立即断掉我们的请求】消息体(试题内容)-------------------------------------------------------------------------http请求的方式get,post区别: 1.从安全性来看,get请求的数据会显示在地址栏上,post请求的数据放在http协议的消息体里面2.从可以提交的数据的大小来看,2.1http本身并没有去限制数据的大小,2.2浏览器在对get和post请求做限制2083字节(2K+35),post没有限制3.get请求可以更好地添加到收藏夹在服务器端,可以通过$_SERVER来得到我们需要的信息防盗链技术先获取REFERERif(isset($_SERVER["HTTP_REFERER"])){if(strpos($_SERVER["HTTP_REFERER"],"http://localhost/http") == 0){echo "你可以看";}else{header("Location:");}}else{header("Location:");}HTTP协议的回复状态行HTTP/1.1 200 OK 【200 OK表示客户端请求成功】【HTTP版本号状态码】消息头Sever:Apache 【表示高速浏览器服务器的情况】Content-Encoding:gzipContent-Length:80Content-Language:zh-cnContent-Type:text/html;charset=GB2312Date:Thu,13 Jul 2000 05:46:53 GMT 【告诉浏览器请求的页面的时间】Content-Length:2291 【表示会送的数据有2291个字节】Content-Type:text/html 【文档的类型】Last-Modified:Tue,11 Jul 2000 05:08:54 GMT 【浏览器请求的资源的最近更新时间】Refresh:1;url= 【浏览器经过一定的时间跳转到指定页面,此为1秒】Content-Dispositon:attachment;filename=aaa.zipTransfer-Encoding:chunkedSet-Cookie:SS=Q0=5Lb_nQ;path=/searchExpires:-1Cache-control:no-cache 【3个来结合控制浏览器的缓存】Pragma:no-cache消息体hello 【】-------------------------------------------------------------------------------------------------------对HTTP状态码的说明(有空的为了以后扩展)状态码含义100-199 表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程200-299 表示成功接收请求,并完成整个处理过程,常用200300-399 表示为完成请求,客户需要进一步细化请求。

常见协议总结

常见协议总结

常见协议总结一、HTTP协议HTTP协议是超文本传输协议,用于在Web浏览器和Web服务器之间传输数据。

它通过请求-响应的方式进行通信,客户端向服务器发送请求,服务器返回响应。

HTTP协议使用简单、灵活的方式,可在不同的网络环境中实现数据的传输和交互。

它的特点是无连接、无状态,每次请求和响应都是独立的。

二、TCP/IP协议TCP/IP协议是互联网通信的基础协议,它是一组用于在网络上进行通信的协议。

TCP(传输控制协议)负责数据的可靠传输,确保数据的完整性和顺序性;IP(互联网协议)负责数据的路由和传输,将数据包从源地址传输到目标地址。

TCP/IP协议是一种可靠、灵活的协议,广泛应用于互联网和局域网。

三、SMTP协议SMTP协议是简单邮件传输协议,用于电子邮件的发送。

它基于TCP/IP协议,通过邮件服务器将邮件从发件人发送到收件人。

SMTP协议使用命令和响应的方式进行通信,客户端发送命令,服务器返回响应。

SMTP协议确保邮件的可靠传输,支持身份验证和加密等安全机制。

四、FTP协议FTP协议是文件传输协议,用于在客户端和服务器之间传输文件。

它基于TCP/IP协议,支持文件的上传、下载和删除等操作。

FTP协议使用用户身份验证进行安全访问,可以通过用户名和密码登录到服务器。

FTP协议提供了对文件的管理和控制,是广泛应用于文件传输的协议。

五、DNS协议DNS协议是域名系统协议,用于将域名转换为IP地址。

它基于TCP/IP协议,通过域名服务器将域名解析为对应的IP地址。

DNS 协议使用域名层次结构进行命名和管理,可以实现域名的分布式管理和解析。

DNS协议是互联网中重要的基础设施,使得人们可以使用易记的域名访问网络资源。

六、SSH协议SSH协议是安全外壳协议,用于在不安全的网络中安全地传输数据。

它基于TCP/IP协议,通过加密和身份验证等机制确保数据的安全性。

SSH协议可以在远程服务器上执行命令、传输文件和进行安全访问等操作。

前端开发紧密相关的HTTP协议知识

前端开发紧密相关的HTTP协议知识

前端开发紧密相关的HTTP协议知识
前端工程师打交道最多的就是扫瞄器,不管做什么都离不开扫瞄器,其中HTTP协议往往会被我们忽视,但其实资源缓存、CDN加载、页面性能优化等等都离不开对HTTP协议的了解。

HTTP也叫作超文本传输协议,全称:Hyper Transfer Protocol。

最初HTTP只能传输HTML文件,渐渐的现在可以传输文字、图像、视频和各种流文件。

HTTP是无状态的:同一个客户端,延续发起多次哀求,对HTTP服务器来说,都是新的哀求,HTTP没方法知道来自一个客户端。

HTTP消息结构:要看详细消息结构需要用抓包工具,所以这边惟独容易介绍,没有详细实例。

Request和response的消息结构基本一样。

Header:分为request/response line和request/response header。

request/response line:包括哀求的办法Method(GET/POST)、
第1页共8页。

HTTP协议详细总结

HTTP协议详细总结

HTTP协议详细总结HTTP超⽂本传输协议,是WWW上应⽤的最多的协议。

了解和掌握HTTP协议是对程序⼈员的基本要求。

⼀、HTTP介绍 HTTP是⼀个基于请求/响应模式的、⽆状态的协议。

即,浏览器与服务端连接之后,浏览器向服务器发送⼀个请求,服务器返回响应信息之后,双⽅的链接就被关闭。

我们要知道,应⽤层的HTTP要使⽤传输层的TCP协议来完成。

⽽TCP协议是通过“3次握⼿”建⽴连接,是⾯向连接的协议。

默认情况下,浏览器与Web服务器上80端⼝监听的服务器程序建⽴TCP连接。

HTTP1.0是典型的请求/响应模式。

为了减少服务器的开销,HTTP1.1默认有“持续连接”的机制。

通过这种机制,客户端发送请求得到响应后,连接不会马上关闭,可以继续发送请求,还可以流⽔线发送多个请求、⽽不⽤等待每⼀个响应的到来。

⼆、URI和URL URI(统⼀资源标识符)纯粹是⼀种符号结构,⽤于指定构成Web资源的字符串的各个不同部分。

⽽URL(统⼀资源定位符)是⼀种特殊的URI,包含了⽤于查找某个资源的⾜够信息。

URI是⼀种语义上的抽象概念,可以是绝对的,也可以是相对的,⽽URL则必须提供⾜够的信息来定位,所以,是绝对的,⽽通常说的relative URL,则是针对另⼀个absolute URL,本质上还是绝对的。

三、HTTP请求格式如图:(CRLF表⽰回车符+换⾏符,不同颜⾊之间⽤空格隔开)第⼀⾏叫做请求⾏。

所以我们可以说HTTP请求由请求⾏、消息报头、请求正⽂组成。

1、请求⾏如上,请求⾏以⼀个⽅法符号开头,空格之后,⼀个请求URI,再空格,然后⼀个HTTP版本,最后⼀个回车换⾏。

其中请求⽅法有如下⼏种:我们在浏览器地址栏直接输⼊地址的时候,采⽤的就是GET⽅法。

HEAD⽅法⼀般⽤于测试超链接的有效性,因为它只是请求响应消息的报头。

消息报头后⾯会讲。

(HTTP协议中,请求⽅法必须全部⼤写)2、请求正⽂类似name=XXX&pwd=XXXX的内容四、HTTP响应格式与HTTP请求类似,如图:第⼀⾏叫做状态⾏。

对HTTP协议简单的理解

对HTTP协议简单的理解

对HTTP协议简单的理解主要有两种比较重要的机制,在这里总结一下:一,连接机制;HTTP/1.1支持两种连接机制,一种是非持久连接,第二种是持久连接。

基本上默认是使用持久连接,因为这样能够减少建立连接时候的网络延时与CPU消耗。

其中服务器与客户端都会假定连接没有关闭,除非对方传来的头文件包含" Connection:close",不然连接将继续保持。

客户端,服务器与代理都可以随时结束连接,而他们也应该有一套机制去重新搭建起连接,并保持正确性。

每个客户端也只能与一个服务器保持两条连接。

代理也只能保持2N 条连接,N 为代理的活跃用户数。

对于连接的时候,由用户向服务器端发送一个带有"Expect"的信息到服务器端,服务器端如果连接正常则返回一个100 ( continue )的信息到客户端,提示客户端可以继续发送。

HTTP对于传输道路上的元素也有一定的要求。

也规定了不透明代理可以改变哪些字段,而不能改变哪些字段。

二.缓存机制;HTTP中使用缓存主要有两个作用,一个是在很多情况下可以减少发送包,减少网络IO,使用“过期”机制来处理;第二个是可以减少发送整包的操作,减少带宽需求,使用“验证”机制来处理。

(1)“过期”机制(Expiration Model),用于服务器端制定一个“过期时间”,主要有两种计算方式,按优先级顺序,第一种是年龄(Age),第二种是过期时间(Expiration)。

对于第一种,服务器会提供一个年龄字段(Age)与一个有效年龄(max-age),而年龄的计算,则是采用服务器生成时的初始年龄再加上从服务器生成至缓存的时间。

如果有Age 这个字段的存在,则说明这个消息不是第一手的,中间有缓存的存在。

而要计算一个消息是否过期,则需要采用以下的方法:if(max_age_value )Freshness_lifetime = max_age_value ;ElseFreshness_lifetime = expires_value - date_value ;Response_is_fresh = ( freshness_lifetime>current_age ) ;总体计算方法都比较直观与简单,而如果需要更新缓存的话,则可以加入以下字段:Cache-Control : max-age = 0 ; OR Cache-Control : no-cache ;(2)验证机制(Validation Model ) ,采用这种机制的时候,缓存先向服务器验证当前的缓存条目是否最新的,则收到304的提示表示 Not Modified,条目是最新的。

使用网络分析软件学习HTTP协议(精)

使用网络分析软件学习HTTP协议(精)

使用网络分析软件学习 HTTP 协议一、目的学习网络分析也有段时间了, 到现在也算是逐渐入门了吧, 想想自己以前刚接触时, 不知道从何入手。

学习网络分析,肯定要从协议入手,如果只看相关资料,这样印象不深刻,而且也没什么实战的经验, 速度和效率都慢了很多。

后来有高人指点了我, 用网络分析软件来学习协议比较好, 从此我开始了另外一种方法的学习。

呵呵, 自己作为一个初学者, 想把自己学习的方法写出来,和大家交流交流,个人认为方法是最重要的。

TCP/IP协议族里的协议太多了,这个还的靠时间的积累:说了这么多废话,嘿嘿!其实应用层协议是我们经常用到的协议,比如 HTTP , FTP 等等,下面我们就来谈谈 HTTP 协议(不看网页不可能吧 -.-# ,学习其他协议时可以用类似的方法,灵活变通。

^o^二、试验环境我们这里试验的网络环境很简单,简单描述一下:1. 网络环境 :本人电脑通过代理服务器 ADSL 拨号上网,本机 IP=192.168.0.92;2. 操作系统 :本人电脑使用 Windows XP+SP2;3. 工具 (关键哟 :我接触过 Sniffer , OmniPeek , ethereal ,科来网络分析系统,个人相对这几种软件用的稍微熟悉的还是 OmniPeek ,这里我就以 OmniPeek 为学习工具。

三、具体操作我试验过程也很简单, 访问网页大家都很清楚吧?我这里只是用更加深入的方式来了解访问网页的种种过程及原理,具体操作如下:1. 打开 OminPeek 的设置, 在 Filers 里面设置 Address 和 protocl filter选择HTTP 协议,如图 1,(图 1 过滤器设置说明:通过设置图 1的过滤器, 我们就可以只捕获 192.168.0.92使用 HTTP 协议的通讯了: 2. 开始捕获,使用主机 192.168.0.92访问网页 ,抓取数据包,如图 2,(图 2 抓取的数据包说明:呵呵,准备就绪,开始捕获,我们访问 http:\\论坛,捕获到的数据包。

HTTP协议总结

HTTP协议总结

HTTP协议理解HTTP协议是基于TCP/IP协议之上的协议,是Web浏览器和Web服务器之间的应用层协议,是通用的、无状态的、面向对象的协议。

WWW服务遵从HTTP协议,默认的TCP/IP端口是80,HTTP协议的作用原理包括四个步骤:连接:Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功。

请求:Web浏览器通过socket向Web服务器提交请求。

HTTP的请求一般是GET或POST命令(POST用于FORM参数的传递)。

GET命令的格式为: GET 路径/文件名 HTTP/1.0 文件名指出所访问的文件,HTTP/1.0指出Web浏览器使用的HTTP版本。

应答:Web浏览器提交请求后,通过HTTP协议传送给Web服务器。

Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面。

关闭:关闭连接。

引:HTTP协议的主要特点:1.支持客户/服务器模式。

2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。

请求方法常用的有GET、HEAD、POST。

每种方法规定了客户与服务器联系的类型不同。

由于HTTP协议简单,使得HTTP 服务器的程序规模小,因而通信速度很快。

3.灵活:HTTP允许传输任意类型的数据对象。

正在传输的类型由Content-Type加以标记。

4.无连接:无连接的含义是限制每次连接只处理一个请求。

服务器处理完客户的请求,并收到客户的应答后,即断开连接。

采用这种方式可以节省传输时间。

5.无状态:HTTP协议是无状态协议。

无状态是指协议对于事务处理没有记忆能力。

缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

另一方面,在服务器不需要先前信息时它的应答就较快。

一、HTTP协议详解之URL篇http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.HTTP规定在HTTP客户与HTTP服务器之间的每次交互,都由一个ASCII码串构成的请求和一个“类MIME(MIME—like)”的相应组成。

HTTP报文通常都是用TCP连接
2.从层次的角度看,HTTP是面向事务的应用层协议。

所谓事务,就是指一系列的信息交换,而这一系列的信息交换是一个不可分割的整体,即要么所有信息交换都完成,要么一次交换都不进行。

3.HTTP协议本身是无连接的,虽然HTTP使用了TCP连接,但通信的双方在交换HTTP报文前不需要建立HTTP连接。

4.HTTP协议时无状态的,也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同。

5.万维网客户把HTTP请求报文作为TCP连接三次握手的第三个报文的数据发送给万维网服务器,服务器收到HTTP请求报文后,就把所请求的文档作为响应报文返回给客户。

6.HTTP/1.0的主要缺点,是每请求一个文档就要有两倍RTT的开销。

HTTP/1.1使用持续连接。

所谓持续连接,就是万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文,这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。

7.HTTP/1.1协议的持续连接有两种方式,即非流水线方式和流水线方式。

非流水线方式的特点是,客户在收到前一个响应后才能发出下一个请求;流水线方式的特点是,客户在收到HTTP的响应报文之前就能接着发送新的请求报文。

8.HTTP请求报文和响应报文都由三个部分组成:开始行、首部行、实体主题。

开始行用于区别报文时响应报文还是请求报文,在请求报文中,开始行叫做请求行,而在响应报文中,开始行叫做状态行。

9.请求报文请求行只有三个内容:方法、请求资源的URL、HTTP 的版本。

响应报文的状态行也包括三项内容:HTTP的版本、状态码、解释状态码的简单短语。

10.状态码都是三位数字的,分为5大类共33种,例如:
1xx表示通知信息的,如请求收到了或正在进行处理
2xx表示成功,如接受或知道了;
3xx表示重定向,如果完成请求,还必须采取进一步的行动;
4xx表示客户端错误,如请求中有错误的语法或不能完成;
5xx表示服务端错误,如服务器失效无法完成请求。

11.在浏览器地址栏键入URL,按下回车之后发生的几个事件:
1)浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址; 2)解析出IP地址后,根据该IP地址和默认端口80,和服务器建立TCP连接;
3)浏览器发出读取文件(URL中域名后面部分对应的文件)的HTTP请求,该请求报文作为TCP三次握手的第三个报文的数据发送给服务器;
4)服务器给出相应,把对应的html文本发送给浏览器;
5)释放TCP连接;
6)浏览器将该文本显示出来。

相关文档
最新文档