不学无术
又一次感觉到不学无术,被人一问Http知识尽然一点也没答上来,丢人丢到家了啊。平时也看许多的技术文章,为什么到了关键时刻就答不上来呢?
确实发现一个问题,光看是没有用的,需要实践。看别人说的头头是道自己也觉得理解了,但发现再让自己复述一遍可能完全就答不上来。这就是因为看别人的文章更像看小说,脑子里跟着作者的思路感觉好像挺懂的,其实也就是过眼云烟。所以想要学好技术
一方面是要看别人的总结,比如文章、书、源代码 然后就是要自己去总结,比如写写博客,跑跑书里面的代码,这样可以加深理解。 最后就是要去用,特别是在工作中。如果一项技能已经用的非常熟练了想要忘都难。为了让自己对HTTP知识多一点印象,写一篇博客吧。由浅入深,慢慢来。
先简单认识http
HTTP是超文本传输协议,这个协议是应用层协议。我的理解是在服务器生成一段文本,在网络上传输,客户端可以对其解析成视图并提供交互。
http是由请求与响应构成,在设计时是无状态协议,这样每一次的操作基本就是客户端发起请求,服务端返回响应。
Http请求与响应都包含:请求行、消息头和消息体。
常见的Header
说起header不复杂,但细细一看蛮多学问在里面,只不过确实有点多,主要是还是先关注一些常见的吧。
通用头域
Cache-Control:指定请求和响应遵循的缓存机制 Connection:keep-alive:保持与服务器的TCP连接 Date:消息发送的日期时间 Pragma:用来包含实现特定的指令,最常用的是Pragma:no-cache。在HTTP/1.1协议中,它的含义和Cache-Control:no-cache相同。 Transfer-Encoding:chunked:分块编码Request Header
Request URL:请求的URL Request Method:请求的方法(OPTIONS、HEAD、GET、POST、PUT、DELETE、TRACE、CONNECT、PATCH) Remote Address:远程服务器的地址 Accept:指定客户端接收的MIME类型(text/html,application/xhtml+xml,application/xml) Accept-Encoding:指定客户端接收的编码,通常用于指定压缩算法(gzip, deflate, sdch) Accept-Language:指定客户端接收的语言(zh-CN,zh) Accept-Charset:指定客户端接收的字符集(gb2312,uft-8) Cookie:客户端cookie信息 Host:请求的域 User-Agent:发起请求的用户信息,操作系统、浏览器版本等 If-Modified-Since:服务器上一次修改的时间response header
Content-Encoding:响应包的编码及压缩算法(gzip) Content-Type:响应包的资源类型(text/html; charset=utf-8) Expires:过期时间 Last-Modified:最后修改时间常见的状态码 200:请求已成功 201:请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其 URI 已经随Location 头信息返回 301/302:重定向 304:客户端请求的资源未修改 400:错误的请求包 404:请求失败,指定资源未找到 500:服务器内部错误,通常是服务器出错了没法返回响应包
注:此文章为原创,欢迎转载,请在文章页面明显位置给出此文链接!
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did101693