HTTP协议介绍
HTTP(超文本传输协议)是基于TCP/IP的请求与相应模式,无状态的,应用层的协议,是一个属于应用层的面向对象的协议。
特点:
- 支持客户端/服务器模式 B/S,C/S
- 简单快速:客户向服务器请求服务时,只需要传送请求方法和路径。由于HTTP协议简单,使HTTP服务器的程序规模小,因而通信速度很快
常用的请求方式有:GET查,POST提交,PUT保存,DELETE删除
- 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记
- 无连接:限制每次连接只处理一个请求。服务器处理完客户端的请求,客户端收到服务器响应,服务器收到客户端的应答后,即断开连接。这种当时可以节省传输时间
- 无状态。对于事务处理玫记忆能力。如果后续处理需要前面的信息,则必须重传,这样可能导致每次连接传送的数据量增大。那么,在服务器不需要先前信息时,它的应答就较快
HTTP URL格式:http://host[“:”port][abs_path]
http表示要通过HTTP协议来定位网络资源,host表示合法的Internet主机域名或者IP地址(定位主机),port指定一个端口号(定位程序),为空则使用默认端口80;abs_path指请求资源的URI(web上任意的可用资源) ******(path为统一资源标识符)****
有两种报文:请求报文和响应报文
请求报文
由请求行、请求报头、空行、和请求数据4个部分组成
请求行由请求方法,URL字段和HTTP协议的版本组成
格式
Method表示请求方法:get、POST,Request-URL是一个统一资源标识符(路径);HTTP-Version表示请求的HTTP协议版本(现在一般用1.1);CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)
HTTP请求方法有8种:GET,POST,DELETE,PUT,HEAD,TRACE,CONNECT,OPTIONS.。
PUT,DELETE,POST,GET分别对应增删改查
例子:
请求报头:在请求行之后会有0个或者多个请求报头,每个请求报头都包含一个名字和一个值,之间用“:”分割。请求头部会以一个空行,发送回车符和换行符,通知服务器一下不会又请求头
请求数据:不在GET方法中使用,是在POST方法中使用。POST方法适用于需要客户填写表单的场合,与请求数据相关的最常用的请求头是Content-Type和Content-Length
HTTP响应报文
HTTP的响应报文由状态行,响应报头,空行,响应正文组成
HTTP-Version 表示服务器HTTP协议版本(当前是1.1),Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述(描述状态码的成功还是失败)
总结:
http协议是应用层面向对象的无状态的超文本传输协议
协议格式:
请求报文
请求行
请求头
请求空行
请求数据(post有,get没有)
响应报文
状态行
响应报头
响应空行
响应体