OSI开放系统互联模型 Open System interconnection,7层结构,协议规范
主要面向通过网络的端到端的数据流
物理层PH
数据链路层DL
网络层N
定义了应用程序的功能
传输层T
TCP UDP SPX . . .
会话层S
如何开始控制 结束一个会话 RPC SQL . . .
表示层P
定义数据格式和加密
应用层A
HTTP ,FTP ,NFS ,SMTP . . .
HTTP
一个属于应用层面向对象的协议
简洁 快捷 适用于分布式超媒体信息系统
特点
支持客户/服务器模式
简单快速:客户向服务器请求服务时,只需传送请求方法和路径 ,GET POST HEAD . …
灵活:允许传输各种类型的对象,在Content-type加以标记
无连接:限制每次连接只处理一个请求,服务器处理完客户端的请求,并收到客户端的
应答后,即断开连接 可以节省传输时间
无状态:协议对于事务处理没有记忆功能
URL篇
http(超文本传输协议)是基于请求与响应模式的,无状态,应用层的协议,常基于TCP的
连接方式
http URL 包含了用于查找某个资源的足够的信息
格式 http:// host [":" port] [abs_path]
http 表示要通过http协议定位网络资源
host 表示合法的主机域名或者IP地址
port 指定一个端口号,为空时使用缺省端口80
abs_path指定请求资源的URI
请求篇
请求行
请求行以方法符号开头,以空格隔开,后面跟着请求的URL和协议的版本
Method Request-URL HTTP-Version CRLF
Method 请求方法
Request-URL 统一的资源标识符
HTTP-Version 请求的HTTP协议版本
CRLF 回车和换行
请求方法
GET 请求获取Request-URL所标识的资源
POST 在Requet-URL所标识的资源后附加新的数据
HEAD 请求获取由Request-URL所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URL作为标识
DELETE 请求服务器删除Request-URL所标识的资源
TRACE 请求服务器回送收到的信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
消息报头
请求正文
响应篇
在接受和解释请求信息后,服务器返回一个HTTP响应信息
状态行
HTTP-Version Status-Code Reason-Phrase CRLF
. . .
Status-Code 表示服务器发回的响应状态代码
三位数字组成,第一位数字定义了相应的类别
1xx 指示信息 表示请求已接收 继续处理
2xx 成功 表示请求已被成功接受,理解,接受
200 OK 客户端请求成功
3xx 重定向 要完成请求必须完成进一步的操作
4xx 客户端错误 请求有语法错误或者请求无法实现
400 Bad Request 客户端请求有语法错误 不能被服务端所理解
401 Unauthorized 请求未经授权 这个状态码必须和WWW-Authenticate报头域一起使用
403 Forbidden 服务器收到请求 但是拒绝提供服务
404 Not Found 请求资源不存在
5xx 服务器端错误 服务器未能实现合法的请求
500 Internal Error 服务器发生不可预期的错误
503 Server Unavailable 服务器当前不能处理客户端的请求
Reason-phrase 表示状态代码的文本描述
消息报头
响应正文
. . . . . .
消息报头篇
. . . . . .