HTTP权威指南


第一部分:HTTP:Web 的基础

第一章:HTTP概述

  1. MIME

    因特网上有数千种不同的数据类型,HTTP 仔细地给每种要通过 Web 传输的对象都打上了名为 MIME 类型(MIME type)的数据格式标签。

    MIME (Multipurpose Internet Mail Extension,多用途因特网邮件扩展) 类型

    当 Web 浏览器从服务器中取回一个对象时,会去查看相关的 MIME 类型,看看它是否知道应该如何处理这个对象。

    常见的 MIME 类型有数百个,实验性或用途有限的 MIME 类型则更多。

    • HTML 格式的文本文档由 text/html 类型来标记。
    • 普通的 ASCII 文本文档由 text/plain 类型来标记。
    • JPEG 格式的图片为 image/jpeg 类型。
    • GIF 格式的图片为 image/gif 类型。
  2. URI

    服务器资源名被称为统一资源标识符(Uniform Resource Identifier,URI)

  3. URL

    统一资源定位符(Uniform Resource Locator,缩写为URL)是资源标识符(URI)最常见的形式。

    现在,几乎所有的 URI 都是 URL。

    大部分 URL 都遵循一种标准格式,这种格式包含三个部分。

    • URL 的第一部分被称为方案(scheme),说明了访问资源所使用的协议类型。这部分通常就是 HTTP 协议(http://)
    • 第二部分给出了服务器的因特网地址(比如,www.joes-hardware.com)。
    • 其余部分指定了 Web 服务器上的某个资源(比如,/specials/saw-blade.gif)。
  4. URN

    URI 的第二种形式就是统一资源名(URN).URN 仍然处于试验阶段,还未大范围使用。

  5. 事务

    一个事务由一条(从客户端发完服务器)的请求命令和一个(服务器端发往客户端)的响应结果组成。

    每条 HTTP 请求报文都包含一个方法。这个方法会告诉服务器要执行什么动作(获取一个 Web 页面、运行一个网关程序、删除一个文件等)

http支持几种请求方法
- GET	从服务器向客户端发送命名资源
- POST 将来自客户端的数据存储到一个命名的服务器资源中去
- DELETE 从服务器中删除命名资源
- PUT 将客户端数据发送到一个服务器网关应用程序
- HEAD 仅发送命名资源响应中的HTTP 首部
>每条 HTTP 响应报文返回时都会携带一个状态码。
一些常见的HTTP状态码
- 200	OK。文档正确返回
- 302 Redirect(重定向)。到其他地方去获取资源
- 404 Not Found(没找到)。无法找到这个资源 > 应用程序完成一项任务时通常会发布多个 HTTP 事务。 显示页面中的图片是一个事物,执行页面布局也是一个事物。
  1. 报文
HTTP 报文是由一行一行的简单字符串组成的。

HTTP 报文包括以下三个部分:

- 起始行(类似以下)
Request URL:http://www.baidu.com/
Request Method:GET
Status Code:200 OK - 首部字段
Request Headers中的内容
- 主体
请求报文没有主体!
只有在响应的报文中会返回主体(请求www.baidu.com 返回百度首页主体)
这是一个请求报文的一部分 Request Headers:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8,ja;q=0.6,zh-TW;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
这是一个响应报文的一部分 Response Headers:
Cache-Control:no-cache
Connection:Keep-Alive
Content-Encoding:gzip
Content-type:text/html;charset=utf-8
  1. 连接

md笔记——HTTP知识的更多相关文章

  1. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

  2. SQLServer学习笔记<>.基础知识,一些基本命令,单表查询(null top用法,with ties附加属性,over开窗函数),排名函数

    Sqlserver基础知识 (1)创建数据库 创建数据库有两种方式,手动创建和编写sql脚本创建,在这里我采用脚本的方式创建一个名称为TSQLFundamentals2008的数据库.脚本如下:   ...

  3. md笔记——编程术语

    thinkPython 读书笔记 本列表根据thinkPython中记录的大量编程术语 整理而来. 该书的重点不是教会你Python,而是培养读者用计算机科学家一样的思路来思考,设计,开发. 讲解了语 ...

  4. Python 2.7 学习笔记 基本知识

    python是一种解释型的.面向对象的.带有动态语义的高级程序设计语言.本文介绍下python的基本知识. 一.安装 各种操作系统有自己的安装方法,linux系统一般都自带了python的环境.这里不 ...

  5. <数据结构与算法分析>读书笔记--数学知识复习

    数学知识复习是<数据结构与算法分析>的第一章引论的第二小节,之所以放在后面,是因为我对数学确实有些恐惧感.不过再怎么恐惧也是要面对的. 一.指数 基本公式: 二.对数 在计算机科学中除非有 ...

  6. Linux运维学习笔记-文件系统知识体系总结

    文件系统知识总结 新买的硬盘要存放数据需要怎么做? 首先将硬盘装机做RAID,做完RAID后进行分区,分完区后格式化创建文件系统,最后存放数据. 硬盘的内外部结构: 物理形状: 接口类型: IDE(I ...

  7. Unity3D学习笔记——初级知识

    一:Unity欢迎窗口对于初学者来说有很多有价值的信息,值得用户关注,以下将简要介绍这个窗口中的相关内容: 1.Video Tutorials: 提供unity相关的教程 ,包括用户手册 .组件手册以 ...

  8. three.js学习笔记--基础知识

    基础知识 从去年开始就在计划中的three.js终于开始了 历史介绍 (摘自ijunfan1994的转载,感谢作者) OpenGL大概许多人都有所耳闻,它是最常用的跨平台图形库. WebGL是基于Op ...

  9. Python3基础笔记--基础知识

    目录: 一.变量问题 二.运算符总结 三.字符串问题 四.数据结构 五.文件操作 一.变量问题 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间.它自始至终都是在内存中活动,只有指明 ...

随机推荐

  1. 本地/远程Service 和Activity 的交方式(转)

    android SDK提供了Service,用于类似*nix守护进程或者windows的服务. Service有两种类型: 本地服务(Local Service):用于应用程序内部 远程服务(Remo ...

  2. 常见 wifi热点的linux 驱动

    小度Wifi.360Wifi Windows.linux驱动 小度wifi什么的就是一个无线网卡,当然可以自由使用,然官方却说不支持无限网卡功能… 现提供Windows平台和linux平台的驱动安装方 ...

  3. NHibernate 3.3

    今天试了一下NHibernate 3.3比之前的版本简单,只需要引入两个dll,这两个dll分别是:Iesi.Collections.dll和NHibernate.dll 通过 http://nhfo ...

  4. android监听键盘

    android中的带有输入功能的页面布局经常被弹出的键盘遮挡,一种处理方法是监听键盘的弹出,设置布局的padding或隐藏某些占位控件,使得输入框不被键盘遮挡.一种常用的方法是当Activity设置为 ...

  5. TFS跨版本Merge测试

    原始文件Merge.txt Change Set Dev Beta #1 2014-9-25 10:49:13 ZDK 2014-9-25 10:49:13 ZDK #2 2014-9-25 10:4 ...

  6. boost json生成和解析用法

    json c++库还是有很多的,因为工作上经常使用boost,这里选用boost的json,记录下用法. 举个栗子: 如果我们要生成如下格式的json: { "name":&quo ...

  7. leetcode Letter Combinations of a Phone Number python

    class Solution(object): def letterCombinations(self, digits): """ :type digits: str : ...

  8. JavaScript瀑布流代码

    function osCode(){ var boxWidth = parseInt($(".item").css('width')), marginTop = parseInt( ...

  9. 练习-checkbox 全选 ,反选, 单选,以及取值

    1.方法1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w ...

  10. 正选反选JS

    JS <script> window.onload=function(){ var oTher=document.getElementById('other'); var oCheck=d ...