最近在看淘宝的一位大牛写的书,书名叫深入分析JavaWeb技术内幕,相信很多人都听说过这本书,对于一个JavaWeb工程师来说,这本书的帮助应该是特别大的,看书的过程中我会总结重要的内容发到博客里,归纳总结,大家一起提高~
Http详细解析
随着Web2.0时代的到来,互联网的网络架构已经从传统的C/S架构转变为更加方便,快捷的B/S架构,B/S架构大大简化了用户使用网络应用的难度。主要有一下两方面的好处:
- 客户端统一使用浏览器(Browser)
- 服务端统一使用服务器(HTTP)
B/S网络架构的核心就是HTTP。掌握HTTP对一个从事互联网工作的程序员来说非常重要。
要理解HTTP,最重要的就是要熟悉HTTP中的HTTP Header,HTTP Header控制着互联网成千上万的用户的数据传输。最为关键的是,他控制着用户浏览器的渲染行为和服务器的执行逻辑。
表 常见的HTTP请求头
请求头 | 说明 |
---|---|
Accept-Charset | 用于指定客户端接受的字符集 |
Accept-Encoding | 用于指定可接受的内容编码 |
Accept-Language | 用于指定一种自然语言 |
Host | 用户指定被请求资源的Internet主机和端口号 |
User-Agent | 客户端将它的操作系统,浏览器和其他属性告诉服务器 |
Connection | 当前连接是否保持 |
表 常见的HTTP响应头
响应头 | 说明 |
---|---|
Server | 使用的服务器名称,如:Apache/1.3.6 |
Content-Type | 用来指明发送给接受者的实体正文的媒体类型,如:Content-Type:text |
Content-Encoding | 与请求头Acceept-Encoding对应,告诉浏览器服务端采用的是什么压缩编码 |
Content-Language | 描述了资源所用的自然语言,与Accept-Language对应 |
Content-Length | 指明实体正文的长度,用以字节方式存储的十进制数字来表示 |
Keep-Alive | 保持连接的时间 |
表 常见的HTTP状态码
状态码 | 说明 |
---|---|
200 | 客户端请求成功 |
302 | 临时跳转,跳转的地址通过Location确定 |
400 | 客户端请求有语法错误,不能被服务器识别 |
403 | 服务器收到请求,但是拒绝提供服务 |
404 | 请求的资源不存在 |
500 | 服务器发生不可预期的错误 |