HTTP协议学习小总结
HTTP协议基础
最近正在学HTTP协议,听了师兄师姐的推荐,看了《图解HTPP协议》这本书。这本书确实内容不多,但是讲得还算清晰,让我对HTTP协议有了个基本的认识。HTTP协议有一些基础要点,总结如下:
- HTTP协议位于TCP/IP协议簇的最上层,属于应用层协议。为了保证传输的准确性,其下层必须是TCP协议。
- HTTP协议属于无连接无状态协议,每次 request 和 response 之后,不会保存本次连接的信息和状态
- 待更新
HTTP协议中的URI和URL
首先,URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。而URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。而URN,uniform resource name,统一资源命名,是通过名字来标识资源,比如mailto:java-net@java.sun.com。也就是说,URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URI。
HTTP协议中的报文结构
下面分别是请求报文和响应报文的大体结构:
实际的请求报文:
其中 POST 一行为请求行,字段依次为请求方法(POST/GET/PUT/DELETE/OPTIONS),URL,HTTP协议版本。之后为请求头部分,也就是请求首部部分,包含三部分:请求首部字段(Cookie,Accept.Referer等),通用首部字段(cache-control,Pragma),实体首部字段(content-encoding等关于content的字段)。之后的报文体就是这次传输的内容。
接下来是实际的响应报文:
响应报文包括响应行,响应首部和响应体。响应行的字段有HTTP协议版本,状态码及其描述。响应首部包含三种首部字段:响应首部字段(Server,Date),通用首部字段(与请求首部的通用字段相同),实体首部字段(与请求首部的实体首部字段相同)。