HTTP协议详解(二)

HTTP协议详解文章

HTTP协议详解(一)

一.HTTP请求头

图:

If-Modified-Since:把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行对比。如果时间一致,那么返回304,客户端就直接使用本地缓存文件。如果时间不一致,就会返回200和新的文件内容,客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示在浏览器中。

If-Modified-Since:   Thu,09 Feb 2012 09:07:01 GMT

If-None-Match:If-None-Match与ETag一起起作用,工作原理是在HTTP Response中添加ETag信息。当用户再次请求该资源时,将在HTTP Request中加入If-None-Match信息(ETag的值)。如果服务器验证资源的ETag没有改变,将返回一个304状态告诉客户端使用本地缓存文件,否则将返回200状态码和新的资源和ETag。

Cache-Control:指定请求和响应遵循的缓存机制。缓存指令是单向的,且是独立的,Cache-Control不会修改另一个消息处理过程中的缓存处理。

Cache-Control:Public可以被任何缓存所缓存

Cache-Control:private内容只缓存到私有缓存中

Cache-Control:no-cahce所有内容都不会被缓存

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

Cache-Control:max-age客户端可以接收生存期不大于指定时间的响应

Cache-Control:min-fresh客户端可以接收响应时间小于当前时间加上指定时间的响应

Cache-Control:max-stale客户端可以接收超出超时期间的响应消息,如果指定max-stale消息的值,那么客户端可以接收超出超时指定值之内的响应消息

Accept:浏览器可以接受的MIME类型,例如Accept:text/html代表浏览器可以接受服务器回发的类型为text/html,也就是我们常说的HTML文件,如果服务器无法返回text/html类型的数据,服务器应该返回一个406错误。通配符*代表任意类型,例如:Accept:*/* 代表浏览器可以处理所有类型。

Accept-Encoding:浏览器申明自己可以接收的编码方法。通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate)。Servlet能够向支持gzip的浏览器返回gzip编码的HTML页面。

Accept-Encoding:gzip,deflate

Accept-Language:浏览器申明自己可以接收的语言,语言跟字符集的区别,中文是语言,中文有很多字符集,例如:gbk,gb2312

Accept-Charset:浏览器可以接收的字符集。

User-Agent:告诉HTTP服务器,客户端使用的操作系统和浏览器的名称和版本,示例截图如下:

Refer:包含一个URL,用户从该url代表的页面出发访问当前请求的页面。提供了Request的上下文信息的服务器,告诉服务器我是 从哪个链接过来的。

Connection:Keep-Alive当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭。如果客户端再次访问这个服务器的网页,会继续使用这条已经建立的连接。HTTP 1.1默认进行持久连接,利用持久连接的优点,当页面包含多个元素时,显著减少下载所需的时间,要实现这一点,Servlet需要在应答中发送一个Content-Length头,最简单的做法是先把内容写入ByteArrayOutputStream,然后再正式写出内容之前计算它的大小。

Connection:Close代表一个Request完成后,客户端和服务器之间用于传输HTTP 数据的连接会关闭,当客户再次发送Request,需要重新建立TCP连接。

Host:主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来,HTTP 1.1请求必须包含主机头域,否则会以400状态码返回。

Cookie:最重要的请求之一

Content-Length:表示请求消息正文的长度。

UA-Pixels,UA-Color,UA-OS,UA-CPU:由于某些版本的IE浏览器所发送的非标准的请求头,表示屏幕大小、颜色深度、操作系统和CPU类型。

Range:可以请求实体的一个或多个子范围

bytes=0-499  表示头500个字节

bytes=500-999 表示第二个500字节

bytes=-500 表示最后500个字节

bytes=500-  表示500字节以后的范围

bytes=0-0,-1  表示第一个和最后一个字节

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

原文地址:https://www.cnblogs.com/xiaowangzi1987/p/9115299.html

时间: 2024-10-16 18:23:10

HTTP协议详解(二)的相关文章

TCP/IP协议详解(二) 基于C# Socket的C/S模型建立

前一章节我提到了在Windows,LINUIX内核已经有了完整的TCP/IP实现,只要会调用专用接口函数: Socket和TLI(传输层接口)就足够了,正好我最近在了解C#,所以便通过Socket实现简单的客户端/服务器模型,程序本身并不难,不过理解了之后对于认知TCP/IP有着良好的促进作用. 想要实现Socket通讯,具体实现参考标准的流程,如下图: 了解了上图,那么就可以开始C#的编程了(窗体设计等参考源码,我主要讲解核心代码): 客户端: 客户端的实现比较简单 1.建立tcp连接(等同于

《Linux高性能服务器编程》学习总结(二)——IP协议详解

第二章      IP协议详解 IP协议是TCP/IP协议族中的核心协议,也是socket网络编程的基础之一.IP协议的特点是为上层提供无状态.无连接.不可靠的服务. 无状态是指IP通信双方不同步传输数据的状态信息,通俗一些说就是双方发送的IP数据报是相互独立的,没有任何上下文关系.这样的特性缺点在于无法处理重复和乱序的IP数据报,举个例子,假设由于网络原因或者IP选路的原因导致第N个数据报比第N+1个数据报晚到达目的主机或同一个IP数据报经过不同的路径多次到达目的端,此时接收端的IP模块无法检

HTTP协议详解(真的很经典)

引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HTTP协议的主要特点可概括如下:1.支持客户/服务器模式.2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POS

HTTP协议详解 (转)

转自 http://blog.csdn.net/gueter/article/details/1524447 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HTTP协议的主要特点可概括如下:1.支持客户/服务

转:HTTP协议详解(真的很经典)

转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HT

(转)HTTP协议详解

HTTP协议详解 一.概念 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器. HTTP协议,即超文本传输协议(Hypertext transfer protocol).是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议. HTTP协议是用于从WWW服务器传输超文本到本地

HTTP协议详解 (转)

引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HTTP协议的主要特点可概括如下:1.支持客户/服务器模式.2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POS

(转载)HTTP协议详解(真的很经典)

转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HT

RTMP协议详解(转)

转自<RTMP协议详解(一) (二) (三) > Real Time Messaging Protocol(实时消息传送协议协议)是Adobe Systems公司为Flash播放器和服务器之间音频.视频和数据传输开发的私有协议. 具体使用RTMP的AS代码大概如下: var videoInstance:Video = your_video_instance; var nc:NetConnection = new NetConnection(); var connected:Boolean =