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 初步知识总结的更多相关文章

  1. C++面向对象程序设计之C++的初步知识

    本节内容为学习谭浩强老师编写的<C++面向对象程序设计>的第1章  C++的初步知识  后的个人总结. 在正文开始之前,首先声明,我是Python程序员. 1.2.最简单的C++程序 例1 ...

  2. JAVA面向对象初步知识总结:封装、继承、多态

    1.封装 把数据和方法包装进类中,以及具体实现的隐藏,常共同被称作是是封装.其结果是一个同时带有特征和行为的数据类型.所谓具体实现的隐藏是通过访问权限控制实现的.JAVA 子类重写继承的方法时,不可以 ...

  3. 全国计算机等级考试二级教程-C语言程序设计_第2章_C程序设计的初步知识

    正负号与被除数一致. 3 % (-5) == 3 (-3) % 5 == -3 不用求余运算符,求出余数. int x, y; 答:x - x / y * y; const int i = 10; c ...

  4. [Spring学习笔记 1 ] Spring 简介,初步知识--Ioc容器详解 基本原理。

    一.Spring Ioc容器详解(1) 20131105 1.一切都是Bean Bean可是一个字符串或者是数字,一般是一些业务组件. 粒度一般比较粗. 2.Bean的名称 xml配置文件中,id属性 ...

  5. Linux用户和用户组的初步知识

    用户组相关:在Linux系统下,当创建一个如叫tom的用户,那么系统同时会创建一个叫tom的用户组linux中用户的信息都是放在/etc/passwd下的,用户的密码经过加密后放在/etc/shado ...

  6. ABP源码分析三十八: ABP.Web.Api.OData

    如果对OData不熟悉的话可参考OData的初步认识一文以获取OData的一些初步知识. API.Odata 模块唯一用处就是提供了一个泛型版本的ODataController,实现了Controll ...

  7. 耿丹CS16-2班助教总结

    Deadline: 2016-1-7 11:59pm 开篇有言 --又是一年末,不似风光,却添风霜,顶霾前进,踽踽独行,可乎? 助教那些事儿 助教这份工作是之前就担任过的,很羞愧,当时才担任了几天就撒 ...

  8. 【转】Linux下Fork与Exec使用

    Linux下Fork与Exec使用 转自 Linux下Fork与Exec使用 一.引言 对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值.for ...

  9. Kolmogorov 的数学观与业绩

    https://www.douban.com/group/topic/11395706/ 作者:伊藤清 当我得知苏联伟大的数学家,84岁的 Andreyii Nikolaevich Kolmogoro ...

随机推荐

  1. 53. Maximum Subarray

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  2. UDP发送数据测试

    一个合作伙伴说UDP发送数据,A(IP:192.168.1.100 子网掩码255.255.255.0)网段能发数据到B网段,但B(IP:192.168.2.100 子网掩码255.255.255.0 ...

  3. PHP里的“夏令虫”

    转自:http://www.2cto.com/kf/201308/235073.html 今儿,我遇到一个大怪物 -- 夏令虫 ╮(╯▽╰)╭,学艺不精,因为他掉进大坑里去了.坑是这样挖的: 以前,我 ...

  4. 随笔 高质量 C++/C 编程指南

    内存分配方式有三种:) 从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量, static 变量.) 在栈上创建.在执行函数时,函数内局部变量的存储 ...

  5. yum 部署nginx

    第一步,在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo: cd /etc/yum.repos.d/ vim nginx.repo   填写如下内容:   [nginx ...

  6. 解决:新版火狐浏览器3d打不开

    重启:按 Ctrl + Shift + L 键唤出 3d 视图 参考文档:http://tieba.baidu.com/p/4606488108

  7. [VB.NET]取消按钮按下的默认事件响应

    大家应该有过这样的经历:有两个文本框a,b.通过编程,当我们在A中回车后,光标会移动到B文本框. 但是,不可避免的会听到一声“铛”的声音. 解决办法: 在Keydown或者KeyUp事件中,设置e.S ...

  8. SQL SERVER触发器游标小记

    今天接到个需求用触发器来实现通过条件对其他表的更新.好久没摸SQL SERVER,电脑里也没SQL SERVER安装包,同事遂发来个安装包,一看吓一跳,3.6G!!!!经过漫长等待后,开始作业.需求如 ...

  9. Python从题目中学习:List comprehension

    九九乘法表作业其实有更简单的做法,就是用列表推导式. ------------------------------------------------------------------------- ...

  10. cocoapod 安装

    淘宝镜像: sudo gem sources -a https://ruby.taobao.org/ sudo gem sources --remove https://rubygems.org/ 安 ...