报文的组成和分类:
主要分成请求报文和响应报文两类,这两种报文都是有以下部分组成:
1)起始行;2)首部;3)可选项-主体部分
报文的语法:
请求语法格式 :方法名 请求url http版本
响应语法格式:http版本 状态码 状态码的可读字符串
首部语法和主题语法相同。
报文的方法:
1)GET : 从服务器获取资源
2)POST:向服务器发送数据
3)PUT:将主体的内容写进服务器中
4)trace:对报文的传输路径进行跟踪,可以在报文中进行查看。
5)head:只获取服务器资源的首部信息。
6)options:要求服务器展示能够处理的所有方法,这样客户端就不会发送无效的方法。
7)delete:删除服务器上的资源。
响应报文的状态码:
1)100-199:信息性状态码。主要存在两种状态码:100和101,100 continue表示客户端在发送主体部分之前,需要先把首部发送给服务器之后,等待服务器确认是否可以接口,然后服务器确认可以接收之后发送100 continue状态码,这时客户端继续发送主体部分信息给服务器。只有客户端在首部中包含expect的值为100 continue之后,服务器才能返回100 continue状态码。
2)200-299:表示请求成功的响应状态码。200表示请求的资源存在。201表示put请求成功,资源已被创建。202表示请求已被接受,但是不确定是否能够完成。203表示响应的首部来源于资源副本,可能是本地,也可能是中间服务器等。204表示响应内容不包括主体部分,但我们进行刷新的时候一般就是这样的返回。205表示重置当前页面的内容。206表示范围请求成功。
3)300-399:表示重定向状态码,主要是当资源不存在时,通过location给出资源新的url地址,这样使客户端可以透明的获取服务器的资源。
4)400-499:客户端请求错误返回状态码。主要体现在404(资源不存在)、405(方法不允许)、401(访问该资源未被授权)、400(坏请求)等。
5)500-599:服务端错误导致的状态码,一般很少出现。主要是存在于代理网关上,如500(连不上服务器)、501(请求的方法无法解析)、502(网关连不上)、503(服务器上当前资源暂时不可用)、504(网关超时)等。
以上状态码不需要全部记住,只需要知道它属于哪一个类别即可,这样就可以大致知道返回的响应是什么原因。
报文的首部信息:
1)通用首部:请求报文和响应报文都会存在的字段,如Connection、date、cache-control等。
2)请求首部:如host、Referer、user-agent、accept、if-match、expect、cookie等。
3)响应首部。
4)实体首部:allow、location、content-type、content-length等。
以上信息是自我阅读后,总结出来的,可能有不全面的地方,建议大家阅读http权威指南这本书进行深入学习。