1.什么是http?
1.1
在当前互联网中,我们所使用的网络通信模型是TCP/IP模型,它是根据OSI模型简化而来的商用型网络模型,从上到下依次是应用层、传输层、网络层、网络接入层。那么http协议就是用于应用层的数据通信,举个例子,我们在网页上点击一个链接,服务器经过处理之后返回给我们数据,可以是图片、文字或其它格式的数据,都可以,那么请求方我们叫做客户端,处理请求方,我们叫做服务端,http在中间起到传输数据的作用(当然仅限于应用层)。
1.2
通过请求和响应交换达成通信。可以参照上方的例子
1.3
http是无状态协议。意思就是http协议不对请求和响应之间的通信状态进行保存,比如用户登录一个购物网站,他点击了某个链接进入网站后面,却又要他重新输入账号密码,因为http不能保存状态,所以为了解决这个缺点,引入了cookie,就可以保存用户的的状态。
1.4
http协议使用url定位资源。你要在网络中请求某个服务器的数据,你首先得需要知道这个服务端在哪,这个服务端的地址就是url,服务端要知道返回给哪个客户端,也需要知道客户端的地址,那么在http通信中,使用的地址就是URL。
1.5 请求方法。
GET: 从服务端获取资源
POST: 传输数据给服务端,虽然也可以在服务端获取资源,但一般不这样做,作者也没说清楚为啥不让做,不过我估计是因为语义化以及规范化
PUT: 传输文件,无验证机制,不推荐使用
HEAD: 获得报文首部,用于确认URL的有效性及资源更新的时间。
DELETE: 删除文件,无验证机制,不推荐使用
OPTIONS: 查询服务端支持哪些请求方法。
TRACE: 追踪路径,容易引发跨站追踪攻击(XST),所以也不推荐使用。
CONNECT: 用隧道协议连接代理,没用过,不是很清楚,大概了解了下。
1.6 使用Cookie进行状态管理。
服务端给客户端发送一个Set-Cookie的首部字段,通知客户端保存Cookie,下次客户端再发送请求的时候,会在请求报文中加入Cookie后再发送。服务端收到请求之后会查看Cookie,确认是之前的哪个客户端发的连接的请求,然后查看之前的记录信息,得到客户端之前的状态。
2.http报文
2.1组成结构,如下图所示:
请求行,包含请求方法,URL,http版本。
状态行,包含状态码,原因短语和http版本。
首部字段,包含表示请求和响应的各种条件和属性的各类首部。
其他,比如cookie。
2.2 返回结果的状态码
状态码的类别,如下图所示:
1XX,Informational 表示正在处理请求。
2XX,Success 处理请求完毕。200 ok,处理请求完毕。 204 No content , 处理请求完毕但是没有资源返回。206 Partial Content 请求部分资源。
3XX , Redirection ,重定向。301 Moved Permanently 永久重定向 资源URL已更新,提醒用户更新书签。302 Found 临时重定向 303 See Other 与302类似,但服务端明确表示希望客户端采用GET方法重定向。304 Not Modified 服务端资源未修改,可直接使用客户端缓存。
4XX,客户端错误 。 400 Bad Request 错误的请求。401 Unauthorized 未认证的请求。403 Forbidden 禁止访问。404 Not Found 无请求资源。
5XX ,服务端错误。500 Internal Server Error 网络服务器错误。503 Service Unavailable 服务器不可访问
3. Https
Https 是在http通信接口部分上用SSL或者TLS协议代替。在Http与Tcp通信之间加了一个SSL(secure socket layer),我怎么感觉有点像安全套。。。。
哎呀,不写了,也差不多了。这本书很老了,感觉看完了,也不是很有用,跟网上的一些有关HTTP帖子的内容也多不出什么内容,这本书有点名不副实,还是个小日本写的。反正看完了这本书,我就这些收获、