一、Http协议的内容
Http是一个基于
请求/响应 模式的,
无状态的协议
( request / response based , stateless protocol )
1.通信过程(Browser<--->Server)
(1.0)
-客户发起连接
-客户发送请求
-服务器响应请求
-服务器关闭连接
(1.1)
(Browser<--->Server)
---建立连接-->
-发出第一次请求->
--------
-发出第 n 次请求->
<-回送第一次请求-
--------
<-回送第 n 次请求-
-发出关闭连接请求->
<--关闭连接---
2.http 1.0 / 1.1
1.0 每次建立连接前需要先建立一次空连接
1.1(持续连接) 每次建立连接都不需要先建立一次空连接
二、Http URL
格式:http:// host [ : port ] [ abs_path ]
-host表示合法的internet主机域名或ip地址
-port用于指定一个端口号,拥有被请求资源的服务器主机监
听该端口的TCP连接。如果是空,则使用缺省80
-abs_path指定请求资源的URI ( Uniform Resource Identifier, 统一资源标志符 )
URI 纯粹是一个符号结构,用于指定构成Web资源的字符串的各个不同部分
URL是一种特殊类型的URI,它包含了用于查找们某个资源的足够的信息。
三、Http请求和响应
客户端通过发送HTTP请求向服务器请求对资源的访问
1)HTTP请求由三部分组成,
分别是:
请求行
消息报头
请求征文
请求行
Method Reauest-URI HTTP-Version CRLF
Method:
表示请求的方法,Request-URI是一个统一资源标识符,
标识了要请求的资源,CRLF表示回车换行
-GET / test.html HTTP / 1.1
GET POST HEAD 三种方法
2)HTTP响应
三个部分:状态行,消息报头,响应正文
格式: HTTP-Version Status-Code Reason-Phrase CRLF
HTTP-Version:表示服务器HTTP协议的版本
Status-Code:表示服务器发回的响应代码
Reason-Phrase:表示状态代码的文本描述
CRLF:表示回车换行
例:Http/1.1 200 OK CRLF
状态代码:
1xx:指示信息-表示请求已接受,继续处理
2xx:成功-表示请求已经被成功接收,理解,接受
3xx:重定向-要完成请求必须进行更进一步的操作
4xx:客户端错误-请求由语法错误或请求无法实现
5xx:服务器端错误-服务器未能实现合法的请求
四、消息发送(使用cmd下的talnet测试)
打开cmd,输入以下信息
Telent 域名 / ip地址 [ 空格 ] 端口号 + 一个回车
连接完成后输入Http协议的获取指令
1)使用GET格式
GET /页面名称.后缀 HTTP/1.1
HOST: 域名 / ip地址
Connection:Keep-Alive [或者close]( 设置持续连接[立即关闭] )
【两个回车结束提交】
2)使用POST方式
POST /页面名称.后缀 HTTP/1.1
HOST: 域名/ip地址
Connection:Keep-Alive
【一个回车换行】
参数名=参数值&参数名=参数值&......
【回车提交】
在请求的命令中含有更多的配置参数:详细请看这位同志的总结: