HTTP 初步知识总结
1.HTPP报文
HTTP协议以报文的格式传递数据,报文有三部分组成:起始行(对报文进行描述),首部块(包含属性),主体(包含数据,可选)
所有的HTTP报文都可以分为两类:请求报文(Requset Message)和响应报文(Response Message)
1.1起始行:
- 请求行
请求方法,URL,客户端的HTTP版本 - 响应行
响应报文使用的HTTP版本,数字状态码,以及描述状态的原因短语
2.首部:
2.1 通用首部:
- Connection 允许客户端和服务器指定与连接有关的选项
- Date 报文创建时间
- MIME-Version Trailer TransferCoding Update Via
- Keep-Alive:(只有提供Connection:Keep-Alive时会有,设置max和timeout)
2.2 通用缓存首部
- Cache-Control 用于随报文传送的缓存只是
- Pragma 随报文传递指示的方式,但并不专用于缓存,优先使用Cache-Control
2.3 请求首部
- Client-IP :运行客户端的机器的IP地址
- From:提供了客户端用户的EMail地址
- Host:接受请求的服务器的主机地址以及端口号
- Refer:
- User-Agent:发起请求的应用名称
- UA-Color UA-CPU UA-Disp UA-OS UA-Pixels(有副总用,仅限于特殊的客户端需求)
Accept首部
为客户端提供一种将其喜好和能力告知服务器的方式。
- Accept 媒体类型
- Accept-Charset字符集
- Accept-Encoding编码方式+
- Accept-Language语言
条件请求首部
通过条件请求首部,客户端可以为请求加上限制,要求服务器在对请求进行响应之前,确保某个条件为真。
- Expect:允许客户端列出某请求所要求的服务器行为
- If-Match:如果实体标记与文档当前的实体标记相匹配,就获取这份文档。
- If-Modfified-Since:除非在某个指定的日期之后资源被修改过,否则就限制这个请求。
- If-None-Match:如果实体标记不匹配,获取文档。
- If-Range:允许对文档的某个范围进行条件请求。
- If-Unmodifier-Since:除非在某个指定日期后没有被修改过,否则就闲着这个请求
- Range:如果服务器支持范围请求,就请求资源的制定范围。
安全请求首部:
- Authorization:包含了客户端提供给服务器,以便进行自身认证的数据
- cookie:一个令牌
代理请求首部:
- Max-Forward:
- Proxy-Authorization
- Proxy-Connection
2.4 响应首部
信息性首部
- Age
- Public
- Retry-After
- Server
- Title
- Warning
协商首部
- Accept-Ranges
- Vary
安全响应首部
- Set-Cookie
实体首部
- Allow
- Location
2.5 内容首部
- Content - (Base + Encoding + Language + Length + Location+ MD5 + Range+ Type)
2.6实体缓存首部
- ETag
- Expires
- Last-Modified
GET方法负责从服务器获取一个文档
POST方法向服务器发送需要处理的数据
对HTTP304的理解
当在浏览器里输入google.com并按回车的时候发什么什么
HTTP 状态消息
HTTP 初步知识总结的更多相关文章
- C++面向对象程序设计之C++的初步知识
本节内容为学习谭浩强老师编写的<C++面向对象程序设计>的第1章 C++的初步知识 后的个人总结. 在正文开始之前,首先声明,我是Python程序员. 1.2.最简单的C++程序 例1 ...
- JAVA面向对象初步知识总结:封装、继承、多态
1.封装 把数据和方法包装进类中,以及具体实现的隐藏,常共同被称作是是封装.其结果是一个同时带有特征和行为的数据类型.所谓具体实现的隐藏是通过访问权限控制实现的.JAVA 子类重写继承的方法时,不可以 ...
- 全国计算机等级考试二级教程-C语言程序设计_第2章_C程序设计的初步知识
正负号与被除数一致. 3 % (-5) == 3 (-3) % 5 == -3 不用求余运算符,求出余数. int x, y; 答:x - x / y * y; const int i = 10; c ...
- [Spring学习笔记 1 ] Spring 简介,初步知识--Ioc容器详解 基本原理。
一.Spring Ioc容器详解(1) 20131105 1.一切都是Bean Bean可是一个字符串或者是数字,一般是一些业务组件. 粒度一般比较粗. 2.Bean的名称 xml配置文件中,id属性 ...
- Linux用户和用户组的初步知识
用户组相关:在Linux系统下,当创建一个如叫tom的用户,那么系统同时会创建一个叫tom的用户组linux中用户的信息都是放在/etc/passwd下的,用户的密码经过加密后放在/etc/shado ...
- ABP源码分析三十八: ABP.Web.Api.OData
如果对OData不熟悉的话可参考OData的初步认识一文以获取OData的一些初步知识. API.Odata 模块唯一用处就是提供了一个泛型版本的ODataController,实现了Controll ...
- 耿丹CS16-2班助教总结
Deadline: 2016-1-7 11:59pm 开篇有言 --又是一年末,不似风光,却添风霜,顶霾前进,踽踽独行,可乎? 助教那些事儿 助教这份工作是之前就担任过的,很羞愧,当时才担任了几天就撒 ...
- 【转】Linux下Fork与Exec使用
Linux下Fork与Exec使用 转自 Linux下Fork与Exec使用 一.引言 对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值.for ...
- Kolmogorov 的数学观与业绩
https://www.douban.com/group/topic/11395706/ 作者:伊藤清 当我得知苏联伟大的数学家,84岁的 Andreyii Nikolaevich Kolmogoro ...
随机推荐
- SQL Server 2012将数据库备份到网络中的共享文件夹
把计算机computer1 中的数据库备份到计算机computer2(IP:192.168.0.130)中的一个共享文件夹下 在computer2中的F盘下建一个共享文件夹叫DBBackupShare ...
- oracle数据库对象使用说明
1.创建一个分区表,并插入一些数据,同时查询出每个分区的数据. 答:创建分区表如下 2.创建一个视图,并给出一个查询语句. 3.在当前用户下创建一个同义词,用于查询scott用户下的dept表,并给出 ...
- Fragment的陷阱(转)
以前做过的一个项目,Fragment嵌套高德地图,当再次进入Fragment的时候,会出现奇怪的现象.嵌套的地图会出现滑动不动的情况,起先还以为是高德的bug呢,经过一番研究,终确定这是一个坑. 先对 ...
- CrashHandler: java.lang.NullPointerException
08-29 20:33:47.305 20636-20636/com.tongyan.subway.inspect D/AndroidRuntime: Shutting down VM 08-29 2 ...
- 每天一个 Linux 命令(12):more命令
more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会 ...
- 设置ajax 同步执行
Ajax请求默认的都是异步的如果想同步 async设置为false就可以(默认是true) var html = $.ajax({ url: "some.php", async ...
- Lambda表达式的演化,委托-匿名方法-Func-Lambda
匿名方法 很多时候委托接收的方法是一次性的或者方法体是非常简单的... 例三: 我们可以写成: 有没有发现我们每次都要定义委托,很多时候签名可能是一样的.这样就没有必要定义重复的. 然后又过了很久很久 ...
- 关于MOD
同余式:正整数a,b对p取模,它们的余数相同,(a % p)=(b % p) 记做 或者a ≡ b (mod p). 运算规则 模运算与基本四则运算有些相似,但是除法例外.其规则如下: ...
- [EventBus源码解析] EventBus.post 方法详述
前情概要 上一篇blog我们了解了EventBus中register/unregister的过程,对EventBus如何实现观察者模式有了基本的认识.今天我们来看一下它是如何分发一个特定事件的,即po ...
- Archlinux添加MP3播放器
方法1: # pacman -S mplayer From: http://www.linuxdiyf.com/viewarticle.php?id=89207 用mplayer循环播放音乐:mpla ...