HTTP之首部
http报文包括起始行、首部和主体。
HTTP请求/响应起始行
请求组成: 方法 + 请求URL + HTTP版本
响应组成: HTTP版本 + 数字状态码 + 描述状态的原因短语
HTTP首部
首部内容为客户端和服务器分别处理请求和响应提供所需要的信息。首部和方法配合工作,共同决定了客户端和服务器能做什么。
通用首部
客户端和服务器都可以使用的首部
|
首部 |
描述 |
值 |
|
Connection |
是否需要持久连接 |
Keep-alive |
|
Cache- Control |
缓存控制 |
private:内容只缓存到私有缓存中(仅客户端); public:所有内容都将被缓存(客户端和代理服务器都可缓存); max-age= 25 :缓存将在25s后失效,需要重新访问服务器; no-cache:必须先与服务器确认返回的响应是否被更改,然后才能使用该响应来满足后续对同一个网址的请求,验证ETag; no-store:响应不被缓存; must-revalidation/proxy-revalidation:如果缓存的内容失效,请求必须发送到服务器/代理以进行重新验证 |
|
Data |
首部字段data表明创建HTTP报文和日期。 |
|
|
Via |
追踪客户端与服务器之间的请求响应和响应报文的传输途径。还可以避免请求回环的发生。 |
|
|
Warning |
告知用户一些与缓存相关问题的警告 |
|
|
Transfer- Encoding: |
规定了传输报文主体时采用的编码方式 |
请求首部中常用字段详解
|
首部 |
描述 |
值 |
|
Accept |
客户端支持的媒体类型 |
"text/html,iamge/*" |
|
Accept-Encoding |
客户端支持的编码方式 |
"gzip, compress" |
|
Accept-Charset |
客户端支持的/字符集 |
"iso8859-5" |
|
Accept-Language |
客户端支持的语言 |
"en, fr" |
|
Except |
||
|
If - Modified - Since |
浏览器缓存页面的最后修改时间,服务器会将该时间与服务器时间对比,如果超出该时间则返回新内容,否则返回304 |
Time |
|
Range |
如果服务器支持请求的范围,则返回资源的指定范围 |
Range |
|
Content - Length |
请求消息正文的长度 |
|
|
Referer |
包含一个URL,用户从该URL代表的页面出发访问当前请求的页面 |
url |
|
User - Agent |
浏览器类型 |
|
|
Trailer |
首部字段Trailer会事先说明在报文主体后记录了哪些首部字段,可以应用在HTTP1.1版本分块传输编码时使用。 |
响应首部中常用字段详解
|
首部 |
描述 |
值 |
|
Accecpt-Ranges "none" |
服务器可接受的范围和类型 |
|
|
Age |
从原始服务器到代理缓存形成的估算时间(以秒记, 非负) |
|
|
ETag |
设置文件是否被修改 |
|
|
Last-Modified |
请求资源的最后修改时间 |
|
|
Serve |
服务器应用程序的名称 |
|
|
Set-cookie |
设置cookie |
|
|
Proxy-Authenticate |
代理对客户端的质询列表 |
Basic |
实体首部中常用字段详解
|
首部 |
描述 |
值 |
|
Content-encoding |
主体编码方式 |
|
|
Content-Language |
主体语言 |
|
|
Content-Length |
主体长度 |
|
|
Content-MD5 |
主体MD5校验和 |
|
|
Content-Range |
在整个资源中,实体表示的字节范围 |
|
|
Content-type |
主体对象类型 |
MD5:一种散列函数,用以提供消息的完整性保护。MD5即Message-Digest Algorithm 5(信息摘要算法5),是计算机广泛使用的散列算法之一(又译摘要算法、哈希算法)。对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。用于确保信息传输完整一致。
HTTP之首部的更多相关文章
- 前端学HTTP之报文首部
前面的话 首部和方法配合工作,共同决定了客户端和服务器能做什么事情.在请求和响应报文中都可以用首部来提供信息,有些首部是某种报文专用的,有些首部则更通用一些.本文将详细介绍HTTP报文中的首部 结构 ...
- TCP服务和首部知识点小结
服务 应用程序会被TCP分割成数据段,而UDP不分割. TCP有超时重传和确认 如果检验和出错将丢弃 IP数据包可能会失序或者重复,所以TCP会处理 滑动窗口来进行流量控制 对字节流的内容不做任何解释 ...
- HTTP首部
前面有几篇博文介绍了HTTP协议.HTTP请求方法详解.Javascript中Cookie的那些事儿.HTTPS,今天我们来聊一聊关于HTTP首部的那些事儿 HTTP协议的请求和响应报文中肯定包含HT ...
- TCP首部解析
TCP首部: TCP数据被封装在一个IP数据报中,如下: TCP首部数据格式: 16位源都口号,16为目的端口号用于寻找发送端和接收端的应用进程,加上IP首部的源端IP及终端IP,唯一的确认一个TCP ...
- IP数据报首部解析
IP数据报首部的格式,普通20字节. 4位版本号:当前4--IPv4. 4首部长度:首部长度 8位服务类型TOS: 3bits(优先权)+ 4bits(类型--最小延迟+最大吞吐量+最高可靠性+最小费 ...
- http协议进阶(三)补充:报文首部
之前写的关于报文首部的传送门: 报文首部:http://www.cnblogs.com/imyalost/p/5708445.html 通用首部字段:http://www.cnblogs.com/im ...
- TCP协议学习笔记(一)首部以及TCP的三次握手连接四次挥手断开
TCP协议是一种面向连接的.可靠的流协议. 流即不间断的数据结构.这样能够保证接收到数据顺序与发送相同.但是犹如数据间没有间隔,因此在TCP通信中,发送端应用可以在自己所要发送的消息中设置一个标示长度 ...
- IP首部校验和的计算
ip抓包结果:0000: 00 e0 0f 7d 1e ba 00 13 8f 54 3b 70 08 00 45 00 0010: 00 2e be 55 00 00 7a 11 51 ac de ...
- 计算机网络(8)-----TCP报文段的首部格式
TCP报文段的首部格式 概述 TCP报文段首部的前20个字节是固定的,因此TCP首部的最小长度是20字节. 源端口和目标端口 各占2个字节,分别写入源端口号和目的端口号. 序列号 占4个字节,表示本报 ...
- IP首部校验和计算
根据RFC1071文档的计算方法,编写代码实现IP首部校验和的计算 计算步骤: 1.首先将IP首部中校验和字段置0 2.将IP首部每16bit进行相加,如果有进位产生,则将进位加到最低位. 3.将计算 ...
随机推荐
- JVM 性能优化, Part 4: C4 垃圾回收
ImportNew注:本文是JVM性能优化 系列-第4篇.前3篇文章请参考文章结尾处的JVM优化系列文章.作为Eva Andreasson的JVM性能优化系列的第4篇,本文将对C4垃圾回收器进行介绍. ...
- linux 11 -- mount,umount
Linux 文件系统是一个以 / 为根的大树,我们在不同的设备和分区上都有文件系统.我们如何处理这种明显的不一致性?根 (/) 文件系统是在初始化过程中挂载的.您创建的其他每个文件系统在挂载 在挂载点 ...
- ubuntu14.04允许root远程链接、修改主机名
1.设置root密码 sudo passwd root 2.修改主机名 第一步:ubuntu主机名位于/etc/hostname里,将其修改为自己需要的名称. 第二步:修改/etc/hosts文件,将 ...
- Android:日常学习笔记(10)———使用LitePal操作数据库
Android:日常学习笔记(10)———使用LitePal操作数据库 引入LitePal 什么是LitePal LitePal是一款开源的Android数据库框架,采用了对象关系映射(ORM)的模式 ...
- 2018年长沙理工大学第十三届程序设计竞赛 G 逃离迷宫 【BFS】
链接:https://www.nowcoder.com/acm/contest/96/G 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- SQL语法结构
目录 一.增 1.增加字段 2.新建约束 二.删 1.删除字段 2.删除约束 三.改 1.修改字段 一.增 1.增加字段: ALTER TABLE [表名] ADD [字段名] NVARCHAR () ...
- [原创]java WEB学习笔记28: 会话与状态管理Cookie 机制
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- python 3 并发编程之多进程 multiprocessing模块
一 .multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程. ...
- 20165101刘天野 2017-2018-2 《Java程序设计》第1周学习总结
20165101刘天野 2017-2018-2 <Java程序设计>第1周学习总结 教材学习内容总结 Java的地位 Java的特点 安装JDK Java应用程序开发步骤 反编译 安装Gi ...
- matlab之viscircles()函数
函数功能:画圆 语法: viscircles(centers,radii) viscircles(ax,centers,radii) viscircles(___,Name,Value) h = vi ...