`
wx1569618008
  • 浏览: 75311 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

HTTP解析

 
阅读更多

常见的Http请求头和响应头

  请求头

请求头                       说 明          
Accept-Charset 用于指定客户端接受的字符集
Accept-Encoding 用于指定可接受的内容编码,如Accept-Encoding:gzip.deflate
Accept-Language 用于指定一种自然语言,如Accept-Language:zh-cn
Host 用于指定被请求资源的Internet主机和端口号,如Host:www.baidu.com
User-Agent 客户端将它的操作系统、浏览器和其他属性告诉服务器
Connection 当前连接是否保持,如Connection:Keep-Alive

响应头

响应头 说   明
Server 使用的服务器名称,如Server:Apache/1.3.6(Unix)
Content-Type 用来指定发送给接收者的实体正文的媒体类型,如
Content-Encoding 与请求报头Accept-Encoding对应,告诉浏览器服务端采用的是什么压缩编码
Content-Language 描述了资源所用的自然语言,与Accept-Language对应
Content-Length 指明实体正文的长度,用以字节方式存储的十进制数字来表示
Keep-Alive 保持连接的实践,如Keep-Alive:timeout=5,max=120

常见的Http状态码

状态码 说  明
200 客户端请求成功
302 临时跳转,跳转地址通过Location指定
400 客户端请求又语法错误,不能被服务器识别
403 服务器收到请求,但是拒绝服务
404 请求资源不存在
500 服务器发生不可预期的错误




部分配置项

  1. Cache-Control/Program

这个Http Head字段用于指定所有缓存机制在整个请求/响应链中必须服从的指令,如果知道该页面是否为缓存,不仅可以控制浏览器,还可以控制和Http相关的缓存或代理服务器。HTTP Head字段有一些可选值,这些值及其说明

可选值  说明
Public 所有内容都将被缓存,在响应头中设置
private 内容只缓存到私有缓存中,在响应头中设置
no-cache 所有内容都不会被缓存,在请求头和响应头中设置
no-store 所有内容都不会被缓存到缓存或Internet临时文件中,在响应头中设置
must-revalidation/proxy-revalidation 如果缓存的内容失效,请求必须发送到服务器/代理以进行重新验证,在请求头中设置
max-age=xxx 缓存的内容将在xxx秒后失效,这个选项只在HTTP1.1中可用,和Last-Modified一起使用时优先级较高,在响应头中设置

        Cache-Control请求字段被各个浏览器支持得较好,而且它的优先级也比较高,它和其他一些请求字段(如Expires)同时出现时,Cache-Control会覆盖其他字段。

        Pragma字段的作用和Cache-Control有点类似,它也是在Http头中包含一个特殊的指令,使相关的服务器遵守该指令,最常用得就是Pragma:no-cache,它和Cache-Control:no-cache得作用是一样的。

2.Expires

Expires通常的使用格式Expires:Sat,25 Feb 2012 12:22:17 GMT,后面跟着一个日期和时间,超过这个时间值后,缓存的内容将失效,也就是浏览器在发生请求之前检查这个页面的这个字段,看该页面是否已经过期了,过期了就重新向服务器发起请求。

3.Last-Modified/Etag

Last-Modified字段一般用于表示一个服务器上的资源的最后修改时间,静态资源(自动加上Last-Modified字段)或者动态(Servlet提供一个getLastModified方法用于检查某个动态内容是否更新),通过这个最后修改时间可以判断当前请求的资源是否是最新的。

一般情况下响应头中返回一个Last-Modified字段,浏览器再次请求时请求头中增加一个If-Modified-Since,询问服务器是否最新,若是返回304。

4.Etag

作用跟Last-Modified相似,为每个资源页面分配一个唯一编号。但后台处理繁琐

 

 

 

 

   

 

 

 

转载于:https://my.oschina.net/u/3230371/blog/1527961

分享到:
评论

相关推荐

    HTTP/http解析器

    HTTP/http解析器是一种用于处理HTTP协议数据的核心组件,它由纯C语言编写,不依赖于任何特定系统的系统调用,因此具有高度的可移植性,可以在多种操作系统和硬件平台上运行。这种解析器的主要任务是将接收到的HTTP或...

    ry-http.rar_C++ HTTP解析_c语言 http_http 解析 C语言_http解析_解析 http

    《C语言实现HTTP解析器详解》 HTTP(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。本项目“ry-http.rar”是一个C语言编写的HTTP解析...

    易语言HTTP解析

    在本主题中,我们关注的是易语言中的HTTP解析功能,这是网络编程中非常重要的一部分,用于处理HTTP协议相关的请求和响应。 HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于客户端与服务器之间的...

    一个简单的HTTP解析示例

    在本示例中,我们将探讨如何进行一个简单的HTTP解析,以便从指定的URL获取网页信息。 首先,我们要理解HTTP请求的基本结构。一个HTTP请求通常由三部分组成:请求行、请求头和请求体。请求行包含请求方法(如GET或...

    http解析,详细描述了如何解析http头

    http解析,详细描述了如何解析http头

    HTTP解析.rar

    HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于...以上是关于HTTP解析的基本概念和相关知识点,易语言HTTP解析源码则是具体实现这些功能的编程代码,可以帮助开发者理解和构建自己的HTTP通信模块。

    Http.rar_http log_http 监控_http 解析_libnids_libnids http

    `http解析`则是指将接收到的HTTP数据包分解为可理解的部分,如请求行、请求头、请求体等。在本例中,`libnids`是一个开源库,用于网络数据分析和网络入侵检测系统(NIDS)。它能够实现HTTP协议的解析,帮助开发者...

    http_postaget_method.rar_HTTP模拟_http 表单_http 解析

    在这个主题中,"http_postaget_method.rar_HTTP模拟_http 表单_http 解析",我们将深入探讨如何使用HTTP的POST方法进行模拟请求,处理HTTP表单,以及解析返回的数据。 首先,POST方法是HTTP请求中的一个重要部分,...

    HTTP解析器HTTPParser.zip

    C语言实现的HTTP解析器,提供请求和响应报文的解析功能,可用于高性能的HTTP应用程序中。它不使用任何系统调用及内存分配的功能,并且不缓冲任何数据,可以被随时中断使用。根据你的系统架构,它处理一个请求只消耗...

    http解析实例,支持windows和linux.zip

    这个压缩包"HTTP解析实例,支持windows和linux.zip"似乎包含了一个名为"http-parser-main"的项目,它可能是一个跨平台的HTTP协议解析库,用于处理HTTP请求和响应的解析工作。在Linux和Windows操作系统上都能运行,这...

    HTTP解析器

    HTTP解析器是网络通信中的关键组件,主要用于处理和解析HTTP协议的数据包。在互联网通信中,HTTP(超文本传输协议)是应用层最常用的协议之一,用于从Web服务器传输超媒体文档到客户端,如浏览器。当一个HTTP请求或...

    http-sniffer-0.2.tar.gz_HTTP_http 解析_http解析

    《HTTP报文解析技术详解——基于"http-sniffer-0.2.tar.gz"的探索》 在互联网通信中,HTTP(超文本传输协议)是应用层最广泛使用的协议之一,它负责客户端与服务器之间的数据交互。本文将围绕"HTTP_sniffer_0.2"这...

    易语言源码易语言HTTP解析源码.rar

    易语言源码易语言HTTP解析源码.rar

    hspcap_流量监控_pcap4j解析http_pcap4j解析ssh_pcap4j_

    标题中的“hspcap_流量监控_pcap4j解析http_pcap4j解析ssh_pcap4j_”表明我们将探讨如何使用pcap4j库进行流量监控,特别是针对HTTP和SSH协议的流量解析。让我们深入了解一下这些关键概念。 流量监控是网络管理中不...

    易语言HTTP解析源码-易语言

    在本压缩包中,"易语言HTTP解析源码"提供了易语言环境下实现HTTP协议解析的源代码。HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。 HTTP解析...

    httparser:高性能http 1.1解析器,为你的异步io库插上http解析的翅膀,每秒可以处理630.15MBs流量[从零实现]

    本来想基于异步io库写一些好玩的代码,发现没有适用于这些库的http解析库,索性就自己写一个,替换golang生态一小片空白领域。 特性 网址解析 请求或响应头字段解析 请求或响应标头值解析 内容长度数据包解析 数据包...

    HttpCommunications_HTTP通讯协议解析_

    文件列表中的`http_parser.c`和`http_parser.h`可能是一个HTTP解析器的源代码,用于解析HTTP请求和响应的原始字节流,理解请求的方法、头信息、状态码等。`test.c`可能是测试这些解析功能的代码,而`bench.c`可能是...

    boost之http请求及chunked解析

    在IT行业中,Boost库是一个非常重要的C++工具集,它为C++标准库提供了许多扩展功能,包括网络编程。...希望这个概述能为你提供一个起点,让你更好地理解和使用Boost.ASIO进行HTTP请求和chunked编码的解析。

    http解析器:用于c的http requestresponse解析器

    HTTP解析器 http-parser。 新项目和希望迁移的项目应考虑 。 这是用C编写的HTTP消息的解析器。它解析请求和响应。 该解析器旨在用于性能HTTP应用程序。 它不进行任何系统调用或分配,不缓冲数据,可以随时中断。 ...

    http-muncher-基于nodejs / http-parser的Rust Streaming HTTP解析器-Rust开发

    HttpMuncher:Rust流HTTP解析器NodeJS http-parser库的Rust包装器。 它打算用作Rust- HttpMuncher中的HTTP / 1.x协议处理程序:Rust流HTTP解析器NodeJS http-parser库的Rust包装器。 它打算在基于Rust的Web服务器中...

Global site tag (gtag.js) - Google Analytics