HTTP 协议概述

HTTP协议是构建在TCP/IP协议之上的,一次完整的HTTP通信会打开一次TCP连接。

所以深入理解HTTP协议,必须对TCP/IP协议有一定的了解。

HTTP代理

在现实的网络世界中,代理无处不在,对于客户端来说,代理就是服务端,对于最终的服务端来说,代理又是客户端。

代理的身份可以是双重的,所以在很多方面,代理作用很大:

  1. 做为缓存服务器,直接与客户端通信,缓解真实服务端压力
  2. 做为代理服务器,可以让一些访问不了外网的客户端也能访问到外网的资源
  3. 做为认证服务器,可以拦截客户请求,只有通过认证的客户端才能访问到最终的资源

HTTP缓存策略

对于一些服务器资源,服务端并不希望客户端在重复请求时,每次都返回资源。这样当资源文件足够大、请求足够多时,服务器的压力会很大。

HTTP协议在缓存这一块有一个比较合理的交互规则:

  1. 客户端请求资源(默认是允许缓存,如果header中带Cache-Control: no-cache,那么说明客户端不缓存数据)
  2. 服务端响应资源,header中添加Cache-Control: max-age=1000,告诉客户端1000s内我不会改变资源内容,你就用旧的资源吧
  3. 客户端的将资源放入到缓存文件夹
  4. 客户端再次请求资源,先去缓存文件夹中查找,找到资源后,对比时间,看是否超过了1000s,如果没有超过就会继续使用资源,如果超过了就会向服务器询问资源是否已经更新,在header中添加if-modified-since:(服务端先前响应header中的Date值)或if-none-match:(服务端先前响应header中的ETag)
  5. 服务端接收到客户端请求,发现请求header中有条件请求if-modified-since或if-none-match,会检查服务器资源是否修改过,如果没有修改,服务端返回304,告诉客户端缓存资源可用。如果发现资源已经修改,那么就将修改过的资源发送给客户端

以上来自:http://my.oschina.net/u/159469/blog/313888

如果要更具体了解HTTP协议,请参考《HTTP权威指南》一书。

时间: 2024-10-10 21:24:10

HTTP 协议概述的相关文章

HTTP协议概述

HTTP协议概述 什么是HTTP协议 1.HTTP协议:hypertext transfer protocol(超文本传输协议) 规定客户端和服务器如何进行交互 基于TCP/IP协议的应用层协议 2.HTTP最基本的三个条件: 1.HTTP协议基于请求响应模型 2.一次请求对应一次响应 3.请求只能由客户端发出,服务器只能被动的等待请求做出响应 2.HTTP1.0和HTTP1.1的区别 1.HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源. 2.HTTP1.1协议,客

javaweb学习总结十九(http协议概述以及http请求信息分析)

一:http协议概述 1:http协议定义 2:使用telnet程序连接web服务器,获取资源 3:http协议:超文本传输协议,它是基于tcp/ip协议,就是建立在tcp/ip之上工作的, http协议前提是必须浏览器与服务器建立连接. 4:http/1.0与http/1.1的区别 telnet连接tomcat服务器演示: http1.0协议: 只与服务器交互了1次,然后就端口连接. http1.1协议: 5:浏览器请求服务器端次数问题 一个浏览器访问服务器,首先拿到html页面,然后发现有图

射频识别技术漫谈(6)——通讯协议概述

通讯协议是通讯的双方或多方在交流时遵守的规矩,包括谁先发起通讯,先交流什么,后交流什么,一方如何问,另一方如何答等.在这里通迅的双方指的是读写器和卡片. 首先是谁先发起通讯,很显然有两种,读写器先发言和卡片先发言.前一种叫Reader Talk First,简称为RTF;后一种叫Tag Talk First,简称为TTF. 我们知道,卡片从读写器产生的射频场获得工作时需要的能量,一般认为应该是读写器主动,卡片被动才对,这也是人之常情.所以多数功能稍复杂的卡片都是采用RTF模式,即读写器问,卡片回

网络协议概述:物理层、连接层、网络层、传输层、应用层详解(转载)

这篇文章主要介绍了网络协议概述:物理层.连接层.网络层.传输层.应用层详解,本文用生活中的邮差与邮局来帮助理解复杂的网络协议,通俗易懂,文风幽默,是少见的好文章,需要的朋友可以参考下 信号的传输总要符合一定的协议(protocol).比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号.这样一个“狼烟=敌人入侵”就是一个简单的协议.协议可以更复杂,比如摩尔斯码(Morse Code),使用短信号和长信号的组合,来代表不同的英文字母.比如SOS(***---*

HTTP 之 HTTP协议(HTTP协议概述、HTTP消息、缓存控制相关头部、Cookie相关头部)

一.HTTP 协议概述 HTTP协议历史与标准 总结:本章内容主要介绍了 HTTP协议(HTTP协议概述.HTTP消息.缓存控制相关头部.Cookie相关头部)

SMB协议概述

一.概述 SMB(Server Message Block)是由微软开发的一种软件程序级的网络传输协议,主要用来使得一个网络上的计算机共享计文件.打印机.串行端口和通讯等资源.它也提供认证的进行进程间通信机能.经过Unix服务器厂商重新开发后,它可以用于连接Unix服务器和Windows客户机,执行打印和文件共享等任务. SMB一开始的设计是在NetBIOS协议上运行的(而NetBIOS本身则运行在NetBEUI.IPX/SPX或TCP/IP协议上).从Windows2000开始,微软引入SMB

1.RapidIO协议概述

转自https://www.cnblogs.com/liujinggang/p/9925859.html 一.RapidIO背景介绍 RapidIO是由Motorola和Mercury等公司率先倡导的一种高性能. 低引脚数. 基于数据包交换的互连体系结构,是为满足和未来高性能嵌入式系统需求而设计的一种开放式互连技术标准.RapidIO主要应用于嵌入式系统内部互连,支持芯片到芯片.板到板间的通讯,可作为嵌入式设备的背板(Backplane)连接. RapidI0采用三层分级体系结构,该分级结的如下

搞懂分布式技术4:ZAB协议概述与选主流程详解

搞懂分布式技术4:ZAB协议概述与选主流程详解 ZAB协议 ZAB(Zookeeper Atomic Broadcast)协议是专门为zookeeper实现分布式协调功能而设计.zookeeper主要是根据ZAB协议是实现分布式系统数据一致性. zookeeper根据ZAB协议建立了主备模型完成zookeeper集群中数据的同步.这里所说的主备系统架构模型是指,在zookeeper集群中,只有一台leader负责处理外部客户端的事物请求(或写操作),然后leader服务器将客户端的写操作数据同步

对TCP/IP协议的一些看法(4):网络层协议概述

之前有提到,链路层的上层是网络层(Internet层),也有翻译为网际层.这层开始一直到应用层就是用户所需要关注的地方了.网络层协议包括了最著名的IP协议.ICMP协议.IGMP协议等,今天主要对IP协议进行一下概述. IP协议: 数据从应用层传下来,在每一层都要对数据的头部进行封装,包括传输层添加TCP或UDP报头,IP层添加IP报头以及链路层添加以太网报头.网络层的报文叫做IP数据包,其主要的格式如下: 其中各位的意思是: 1.版本号:占4位,代表是IPv4还是IPv6 2.首部长度:4位,

基于Linux的USB子系统学习 --- <基础知识与USB协议概述> ing

一.参考资料 1.<USB基础知识概论>  http://www.crifan.com/files/doc/docbook/usb_basic/release/html/usb_basic.html 2.<USB in a NutShell> http://www.beyondlogic.org/usbnutshell/usb1.shtml 3.<USB开发大全(第四版)> http://download.csdn.net/download/qqqq419276485/