Http学习笔记一
1、 HTTP定义:超文本传输协议
2、 Http协议版本: Http/1.0 Http/1.1 Http-NG
3、 Http1.0:
a) 会话方式( 四步骤 ) :
i. 客户机与服务器建立连接
ii. 客户机发出请求信息
iii. 服务器会送相应信息
iv. 服务器关闭连接
b) 浏览器与Web 服务器每次连接只处理一个请求和响应,每次都是完全独立
c) 支持代理
4、 Htpp1.1的特点
a) 在一个TCP 连接上可以传送多个 Http 请求和响应
b) 多个请求和响应过程可以重叠进行(管道线)
c) 增多了更多的请求头和响应头
5、 请求消息的结构:
一个请求行、若干个消息头以及实体内容,其中的一些消息头和实体内容都是可选的。消息头和实体内容之间要用空行隔开。
6、 响应消息的结构:
一个状态行、若干个消息头以及实体内容,其中一些消息头和实体内容是可选的。消息头和实体内总之间要用空行隔开。
7、 Http消息其他说明
a) 响应消息的实体内容就是网页文件的内容
b) Get方式的请求消息不能包含实体内容
c) 对于Http1.1 ,如果消息中包括实体内容,且没有采用 chunked 传输编码方式,那么消息头部分必须包含内容长度的字段,否则客户和服务程序就无法知道实体内容何时结束
d) 支持简单请求,不能加Http 版本,只能用 Get 方式。服务器返回简单的响应消息(只有实体内容)
8、 Http消息头
a) 服务器和浏览器之间的约定、暗号,实现二者的请求和应答
b) 头字段、冒号、空格、值、回车换行,如Accept-Language: en-us
c) 消息头字段名不区分大小写
d) 可以任意排序
e) 消息头分类:信息头、请求头、响应头、实体头
f) 许多请求头字段允许指定多个可接受的值,它们之间用逗号分隔。如:Accept-Language: en-us , zh-cn
g) 有些头可以出现多次
9、 请求行
a) 格式:请求方式 资源方式 Http 版本号 回车
b) 举例:GET /test.html HTTP/1.1
c) 请求方式:POST/GET/HEAD/OPTIONS/DELETE//TRACE/PUT
10、 状态行
a) 格式:HTTP 版本号 状态码 原因叙述 回车
b) 举例:Http/1.1 200 OK
11、 Get方式传送数据量一般限制在 1KB 以下
12、 HTTP响应消息中响应状态码
a) 100-199 表示成功接收请求,要求客户端继续提交下一次请求才能完成完整处理过程
b) 200-299 表示成功接收请求并已完成整个处理过程
c) 300-399 表示需要客户机进一步细化请求,如请求资源已经移动到新地址( 302 )
d) 400-499 表示客户端请求有错误
e) 500-599 表示服务端内部有错误
13、 典型响应状态码:
a) 200 正常。返回的是正常的请求结果
b) 206 部门内容。客户发送了一个带有 Range 头,要求服务器只返回文档中部分内容,服务器已完成
c) 302//307 临时重定向。指出被请求的文档已被临时移到别处,此文档的新 URL 在 Location 的响应头中给出
d) 304 未修改。表示客户机缓存的版本是最新的,客户机应该继续使用。
e) 401 未经授权。访问一个受保护的页面,客户机要使用一个 WWW-Authenticate 响应头提示客户机应重新发出一个带有 Authorization 头的请求消息。
f) 404 找不到。服务器不存在该资源
g) 500 内部服务器错误。服务器端的程序发生错误