`
madbluesky
  • 浏览: 81818 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

http协议学习笔记

    博客分类:
  • java
阅读更多

      http协议(超文本传输协议)是一套计算机通过网络进行通信的规则,使用http协议客户机能够从http服务器请求信息和服务。http协议采用请求/响应模型,在这一模型中总是客户端向服务器发送请求,服务器根据请求信息,请求实体的权限请求。客户端请求的方式主要有GET,POST,HEAD等。

GET     请求获取Request-URI所标识的资源
POST    在Request-URI所标识的资源后附加新的数据
HEAD    请求获取由Request-URI所标识的资源的响应消息报头
PUT     请求服务器存储一个资源,并用Request-URI作为其标识
DELETE  请求服务器删除Request-URI所标识的资源
TRACE   请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

 

 一次完整的http通信过程中,web浏览器与web服务器之间将完成以下七个步骤:

   1。 建立TCP连接。在http连接之前web浏览器首先要通过网络与服务器要建立连接,该连接是通过tcp协议来完成的。http协议是比TCP更高层次的协议,根据规则只有低层次的协议建立好之后才能建立更高层次的连接,所以首先建立tcp连接。

   2。一旦建立了tcp连接,web浏览器就可以向http服务器发送请求命令。

       例如:GET/sample/hello.jsp HTTP/1.1

       GET 表示请求的方式为GET,/sample/hello.jsp 表示请求的资源的uri,HTTP/1.1表示http协议的版本。

  

   3。web浏览器发送请求命令后还要以头信息的形式向向web服务器发送一些别的信息,之后浏览器发送一空白行来通知服务器头信息以发送完毕。

      头信息主要包括:

      Date头域 :Date头域表示消息发送的时间,时间的描述格式由rfc822定义。例如,

                       Date:Mon,31Dec200104:25:57GMT。Date描述的时间表示世界标准时,换算成本地时间,需要知

                       道用户所在的时区。

      Host头域 :Host头域指定请求资源的Intenet主机和端口号,必须表示请求url的原始服务器或网关的位置。

                      HTTP/1.1请求必须包含主机头域,否则系统会以400状态码返回

      

       Referer头域 :Referer 头域允许客户端指定请求uri的源资源地址,这可以允许服务器生成回退链表,可用来登陆、

                          优化cache等。他也允许废除的或错误的连接由于维护的目的被追踪。如果请求的uri没有自己的uri地

                          址,Referer不能被发送。如果指定的是部分uri地址,则此地址应该是一个相对地址。

      pragma头域 :Pragma头域用来包含实现特定的指令,最常用的是Pragma:no-cache

 

      Range头域 :Range头域可以请求实体的一个或者多个子范围。例如,
                     表示头500个字节:bytes=0-499
                     表示第二个500字节:bytes=500-999
                     表示最后500个字节:bytes=-500
                     表示500字节以后的范围:bytes=500-
                     第一个和最后一个字节:bytes=0-0,-1
                     同时指定几个范围:bytes=500-600,601-999

                      但是服务器可以忽略此请求头,如果无条件GET包含Range请求头,响应会以状态码206

                        (PartialContent)返回而不是以200 (OK)。

      

      User-agent头域 :User-Agent头域的内容包含发出请求的用户信息。

                                

      Cache-Control头域 :Cache -Control指定请求和响应遵循的缓存机制。在请求消息或响应消

                                 息中设置 Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令

                                 包括no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached,响应消

                                 息中的指令包括public、private、no-cache、no- store、no-transform、must-

                                 revalidate、proxy-revalidate、max-age。各个消息中的指令含义如 下:

  Public指示响应可被任何缓存区缓存。

  Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消

      息,此响应消息对于其他用户的请求无效。

  no-cache指示请求或响应消息不能缓存

  no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。

  max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。

  min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。

  max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出

      超时期指定值之内的响应消息。

 

      …………等等。

     

       消息头以空行表示结束,消息头后面可接消息体(可选的)如:name=xiaoming&sex=1

      

   4。web 服务器应答。客户机发送请求后,服务器将向客户机回送应答。

       例如:HTTP/1.1 200 OK

       HTTP/1.1 表示http协议的版本,200表示响应状态码,ok为响应状态码的文字描述信息。

       响应状态码的第一个数字可 能取5个不同的值:

      1xx:信息响应类,表示接收到请求并且继续处理

      2xx:处理成功响应类,表示动作被成功接收、理解和接受

      3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理

      4xx:客户端错误,客户请求包含语法错误或者是不能正确执行

      5xx:服务端错误,服务器不能正确执行一个正确的请求

   5。web服务器发送应答头信息。

         Location响应头
     Location响应头用于重定向接收者到一个新URI地址。

  Server响应头
  Server响应头包含处理请求的原始服务器的软件信息。此域能包含多个产品标识和注释,产品标识一般按照重要性排

      序。

  实体
  请求消息和响应消息都可以包含实体信息,实体信息一般由实体头域和实体组成。实体头域包含关于实体的原信息,实

      体头包括Allow、Content- Base、Content-Encoding、Content-Language、 Content-Length、Content-

      Location、Content-MD5、Content-Range、Content-Type、 Etag、Expires、Last-Modified、

      extension-header。extension-header允许客户端定义新的实体头,但是这些域可能无法未接受方识别。实体可

      以是一个经过编码的字节流,它的编码方式由Content-Encoding或Content-Type定义,它的长度由Content-

      Length或Content-Range定义。

  Content-Type实体头
  Content-Type实体头用于向接收方指示实体的介质类型,指定HEAD方法送到接收方的实体介质类型,或GET方法发

      送的请求介质类型 Content-Range实体头

  Content-Range 实体头用于指定整个实体中的一部分的插入位置,他也指示了整个实体的长度。在服务器向客户返回

      一个部分响应,它必须描述响应覆盖的范围和整个实体长度。一般格式:

  Content-Range:bytes-unitSPfirst-byte-pos-last-byte-pos/entity-legth

  例如,传送头500个字节次字段的形式:Content-Range:bytes0- 499/1234如果一个http消息包含此节(例如,

      对范围请求的响应或对一系列范围的重叠请求),Content-Range表示传送的范围, Content-Length表示实际传

      送的字节数。

   6。web服务器向客户机发送数据。

   7。web服务器关闭tcp连接。

 

 

HTTP协议的主要特点可概括如下:
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

 

 

 

分享到:
评论

相关推荐

    HTTP协议学习笔记

    HTTP协议学习笔记 包括协议的RFC中英文版本

    Tomcat和Http学习笔记

    Tomcat服务器和Http协议学习笔记

    HTTP学习笔记

    HTTP学习笔记,主要有协议的基础和一些自己觉得应该要注意的地方

    HTTP协议学习精华贴

    自己总结的学习笔记,内容包括HTTP的请求 响应 和各种报头的详细解释

    http-协议:HTTP协议原理分享

    HTTP协议学习笔记 HTTP协议是互联网的基础协议,也是做为一名合格开发者的必备知识,本系列主要也是个人在工作和学习中的记录总结,如果此处能为您得到帮助,点击右上角 :star:给予支持!祝你好运 :red_heart: 作者...

    Android学习笔记——Http通信 源码

    此篇Android学习笔记的源码主要内容: 1.使用WebView控件加载网页 2.使用ImageView控件加载网络图片

    http协议笔记

    关于http网络协议的相关笔记,希望对有需要的同学与帮助

    net学习笔记及其他代码应用

    答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。 31.公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照...

    Python学习笔记-基于socket基础的http服务端程序

    Python学习笔记-基于socket基础的http服务端程序

    基于Http协议的Web服务端程序

    基于HTTP协议的WEB服务器,简易版的Tomcat.服务端读取配置文件完成对服务 器的初始化,并通过Socket网络编程架构服务器端.浏览器作为客户端,向服务器发送请求.服务端接受请求并将其封装为一个HTTPRequest对象,并对其...

    IPFSNotebook:IPFS学习笔记

    IPFS学习笔记 版本: 本文档持续更新...... 即将补充Bittorrent和Merkle DAG详细内容 参考: 戴嘉乐:详解IPFS的本质 IPFS白皮书-Juan Benet P2P中DHT网络介绍 IPFS: BitSwap协议 IPFS+区块链系列 默克尔树 IPFS——它...

    web学习笔记

    该资源为个人学习笔记,希望对大家有用。主要是关于Web开发中的服务器Tomcat的问题和HTTP协议。

    c#学习笔记.txt

    c#学习笔记(1) 51099在线学习网发布 文章来源:网络收集 发布时间:2006-05-25 字体: [大 中 小] 51099在线学习网 http://www.51099.com 1, 结构(struct) 与 类(class) [attributes] [modifiers] struct ...

    安全:Web安全学习笔记

    这个月看了一本《Web安全设计之道》,书中的内容多是从微软官方文档翻译而来,这本书的含金量不高,不过也不能说没有收获,本文简单记录一下我学习Web安全方面的笔记。本文不涉及IIS、Windows和SqlServer的安全管理...

    Rest以及Mashup学习笔记

    REST架构风格是全新的针对Web应用的开发风格,是当今世界最成功的互联网超媒体分布式系统架构,它使得人们真正理解了Http协议本来面貌。随着 REST架构成为主流技术,一种全新的互联网网络应用开发的思维方式开始流行...

    PHP基础语法学习笔记(前端了解)

    自学笔记:内容大纲 PHP的基本语法 PHP和html登陆小案例 http传输协议

    Requests学习笔记.pdf

    本文档适合作为新手入门requests爬虫教程,可以带你简单了解python基础,Http协议以及异常处理,了解Cookies以及带你掌握正则表达式的使用,最后教你用BeautifulSoup如何去定位元素和爬取页面

    [Web Service学习笔记]第1篇 SOAP的HelloWord实例

    ” “接口协议使用HTTP协议,落地方为发起方提供访问的URL,发起方使用HTTP POST方法发送请求报文并得到应答报文,发起方作为落地方的HTTP客户端,落地方作为发起方的HTTP服务器。因此,各个参与方需要同时实现HTTP...

    angular 学习笔记

    8.与服务器通讯(创建web服务器,使用Http协议与服务器通讯,使用WebSocket协议与服务器通讯) 9.构建和部署(构建和部署,多环境支撑) 前置知识 html,js,css 不需要AngularJs的知识 需要了解ES6的语法 需要了解...

Global site tag (gtag.js) - Google Analytics