zoukankan      html  css  js  c++  java
  • 学点HTTP知识

    不学无术

    又一次感觉到不学无术,被人一问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.cnblogs.com/5207
  • 相关阅读:
    mysql2redis
    butterknife简化android开发
    加速 Gradle 构建大型 Android 项目的方法[转]
    大型项目 Gradle 的常用库和版本管理[转]
    JVM调优
    CSDN上最火的android项目
    jOOQ
    Guava库
    Android 镜像地址[持续更新中]
    The server quit without updating PID file (mysql.pid)一次意外mysql停止运行备忘录
  • 原文地址:https://www.cnblogs.com/5207/p/5899195.html
Copyright © 2011-2022 走看看