md笔记——HTTP知识
HTTP权威指南
第一部分:HTTP:Web 的基础
第一章:HTTP概述
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 类型。
URI
服务器资源名被称为统一资源标识符(Uniform Resource Identifier,URI)
URL
统一资源定位符(Uniform Resource Locator,缩写为URL)是资源标识符(URI)最常见的形式。
现在,几乎所有的 URI 都是 URL。大部分 URL 都遵循一种标准格式,这种格式包含三个部分。
- URL 的第一部分被称为方案(scheme),说明了访问资源所使用的协议类型。这部分通常就是 HTTP 协议(http://)
- 第二部分给出了服务器的因特网地址(比如,www.joes-hardware.com)。
- 其余部分指定了 Web 服务器上的某个资源(比如,/specials/saw-blade.gif)。
URN
URI 的第二种形式就是统一资源名(URN).URN 仍然处于试验阶段,还未大范围使用。
事务
一个事务由一条(从客户端发完服务器)的请求命令和一个(服务器端发往客户端)的响应结果组成。
每条 HTTP 请求报文都包含一个方法。这个方法会告诉服务器要执行什么动作(获取一个 Web 页面、运行一个网关程序、删除一个文件等)
http支持几种请求方法
- GET 从服务器向客户端发送命名资源
- POST 将来自客户端的数据存储到一个命名的服务器资源中去
- DELETE 从服务器中删除命名资源
- PUT 将客户端数据发送到一个服务器网关应用程序
- HEAD 仅发送命名资源响应中的HTTP 首部
>每条 HTTP 响应报文返回时都会携带一个状态码。
一些常见的HTTP状态码
- 200 OK。文档正确返回
- 302 Redirect(重定向)。到其他地方去获取资源
- 404 Not Found(没找到)。无法找到这个资源
> 应用程序完成一项任务时通常会发布多个 HTTP 事务。 显示页面中的图片是一个事物,执行页面布局也是一个事物。
- 报文
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
- 连接
md笔记——HTTP知识的更多相关文章
- jQuery学习笔记 - 基础知识扫盲入门篇
jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...
- SQLServer学习笔记<>.基础知识,一些基本命令,单表查询(null top用法,with ties附加属性,over开窗函数),排名函数
Sqlserver基础知识 (1)创建数据库 创建数据库有两种方式,手动创建和编写sql脚本创建,在这里我采用脚本的方式创建一个名称为TSQLFundamentals2008的数据库.脚本如下: ...
- md笔记——编程术语
thinkPython 读书笔记 本列表根据thinkPython中记录的大量编程术语 整理而来. 该书的重点不是教会你Python,而是培养读者用计算机科学家一样的思路来思考,设计,开发. 讲解了语 ...
- Python 2.7 学习笔记 基本知识
python是一种解释型的.面向对象的.带有动态语义的高级程序设计语言.本文介绍下python的基本知识. 一.安装 各种操作系统有自己的安装方法,linux系统一般都自带了python的环境.这里不 ...
- <数据结构与算法分析>读书笔记--数学知识复习
数学知识复习是<数据结构与算法分析>的第一章引论的第二小节,之所以放在后面,是因为我对数学确实有些恐惧感.不过再怎么恐惧也是要面对的. 一.指数 基本公式: 二.对数 在计算机科学中除非有 ...
- Linux运维学习笔记-文件系统知识体系总结
文件系统知识总结 新买的硬盘要存放数据需要怎么做? 首先将硬盘装机做RAID,做完RAID后进行分区,分完区后格式化创建文件系统,最后存放数据. 硬盘的内外部结构: 物理形状: 接口类型: IDE(I ...
- Unity3D学习笔记——初级知识
一:Unity欢迎窗口对于初学者来说有很多有价值的信息,值得用户关注,以下将简要介绍这个窗口中的相关内容: 1.Video Tutorials: 提供unity相关的教程 ,包括用户手册 .组件手册以 ...
- three.js学习笔记--基础知识
基础知识 从去年开始就在计划中的three.js终于开始了 历史介绍 (摘自ijunfan1994的转载,感谢作者) OpenGL大概许多人都有所耳闻,它是最常用的跨平台图形库. WebGL是基于Op ...
- Python3基础笔记--基础知识
目录: 一.变量问题 二.运算符总结 三.字符串问题 四.数据结构 五.文件操作 一.变量问题 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间.它自始至终都是在内存中活动,只有指明 ...
随机推荐
- 取PE文件的引入表和导出表
直接上代码(这里列出C++和Delphi的代码),Delphi代码中包含导入及导出文件和函数列表,PE结构可参阅资料,很多很详细,需要注意的是,本例中是映射到内存,不是通过PE装载器装入的,所以对于节 ...
- MYSQL中limit的使用
limit是mysql的语法select * from table limit m,n其中m是指记录开始的索引,从0开始,表示第一条记录n是指从第m+1条开始,取n条.select * from ta ...
- GDI编程
图形设备接口(GDI)是一个可执行程序,它接受Windows应用程序的绘图请求(表现为GDI函数调用),并将它们传给相应的设备驱动程序,完成特定于硬件的输出,象打印机输出和屏幕输出.GDI负责Wind ...
- 动态规划——数字三角形(递归or递推or记忆化搜索)
动态规划的核心就是状态和状态转移方程. 对于该题,需要用抽象的方法思考,把当前的位置(i,j)看成一个状态,然后定义状态的指标函数d(i,j)为从格子出发时能得到的最大和(包括格子本身的值). 在这个 ...
- 04737_C++程序设计_第2章_从结构到类的演变
例2.1 使用成员函数的实例. #define _SCL_SECURE_NO_WARNINGS #include <iostream> using namespace std; struc ...
- #include <limits.h>
limits.h专门用于检测整型数据数据类型的表达值范围. #include<stdio.h> #include<limits.h> main() { printf(" ...
- 如何在Github Pages搭建自己写的页面?
教程一大堆,却没有几个能看懂的,问题一:90%的都在讲解如何搭建博客,和我想要将自己的网页部署到上面还是有点区别的.问题二:所有的教程都用到了Git,而我只知道Git是一个开源的分布式版本控制系统.完 ...
- caret彻底的理解css的三角形【通过border】
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 浅谈C中的指针和数组(四)
原文转载地址:http://see.xidian.edu.cn/cpp/html/476.html 在原文的基础上增加自己的思想作为自己的修改 指针数组和数组指针的内存布局 初学者总是分不出指针数组与 ...
- 动态sql构建的过程
基本原理:使用xsqlbuilder框架完成动态sql的构建. 基本流程:使用WebUtils.getParametersStartingWith(ServletActionContext.getRe ...