1.了解web及网络基础

HTTP的诞生

TCP/IP协议族

应用层

FTP文件传输协议

HTTP超文本传输协议

DNS域名系统:IP地址<--->域名

传输层

TCP传输控制协议

三次握手详情

UDP用户报文协议

网络层

IP网际协议

链路层

URL/URI

HTTP协议与其他协议的关系

2.简单HTTP协议

通过请求和响应的交换达成通信

不保存状态的协议

可通过Cookies管理状态

HTTP方法

Get

请求服务器端的资源

Post

传输实体的主体

Put

传输文件

Head

获得报文首部

持久化连接

Connection:keep-alive

3.HTTP报文内的HTTP信息

3.1HTTP报文

3.1.1报文首部

请求报文首部

响应报文首部

通用首部

实体首部

3.1.2报文实体

3.2提升传输速率的手段

1)压缩格式

2)分块传输

3.3获取部分内容

  Range:bytes=5001-10000

3.4内容协商

  Accept

  Accept-Charset 字符集

  Accept-Encoding 编解码方式

  Accept-Language 语言

4.返回结果的HTTP状态码

2XX 成功

  200 ok

  204 no content

  206 partial content

3XX 重定向

  302 Found

  304 Not Modified

4XX 客户端错误

  400 Bad Request

  401 Unauthorized

  403 Forbidden

  404 Not Found

5XX 服务器错误

  500 Internal Server Error

  503 Server Unavailable

5.与HTTP协作的Web服务器

5.1代理

  是否使用缓存

  是否修改报文

5.2网关

  通向另一个网络的入口

5.3隧道

6.HTTP首部

6.1通用首部字段

Cache-Control

控制缓存行为

Connection

逐跳首部、连接的管理

Data

创建报文日期时间

Via

代理服务器信息

...

6.2请求首部字段

q表示权值

Accept:用户代理可处理的媒体类型

text/html:文本文档

application/xhtml+xml

Accept-Charset:优先字符集

Accept-Encoding:优先内容编码

Authorization

If-Modified-Since

User-Agent

Host

Referer:对请求中URI的原始获取方

著名博客网站coolshell应该就是使用referer来检测你是否从Baidu转入

...

6.3响应首部字段

6.4实体首部字段

7.确保web安全的https

7.1http的缺点

1)通信使用明文,内容可能会被窃听

2)不验证对方身份,可能遭遇伪装

3)无法证明报文完整性,内容可能被篡改

7.2http+加密+认证+完整性保护=https

附录:HTTP学习笔记之思维导图版

参考资料:《图解HTTP》(日 上野宣)

【HTTP】HTPP学习笔记的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  3. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  4. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  5. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  6. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  7. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  8. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  9. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

随机推荐

  1. Linux——Django 开发环境部署(一)

    Django 开发环境部署(一) 之所以 写这篇文章的原因在于django环境的确轻松搭建,之前Ubuntu上安装了,的确很轻松,但是后期我才知道随便做个环境出来很容易到了后面很麻烦,污 染了系统里的 ...

  2. javascript 设计模式 -- 发布/订阅模式

    直接上代码: index.html : <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  3. boost库常用功能

    1.shared_ptr shared_ptr除了最基本的可以用new初始化以外,还可以使用其他方式初始化.在使用一些c的api时候,这种初始化方式非常有用,如下 boost::shared_ptr& ...

  4. [[NSBundle mainBundle] pathForResource:@"name" ofType:@"type"] 找不到对应的文件解决方法

    最近在使用[[NSBundle mainBundle] pathForResource:@"name" ofType:@"type"]时,找不到其对应的文件,文 ...

  5. CentOS7 yum 安装 Nginx最新版本

    CentOS7 yum 安装 Nginx最新版本 下载对应当前系统版本的nginx包(package) # wget  http://nginx.org/packages/centos/7/noarc ...

  6. iOS 日志系统 本地日志打包上传到服务器

    日志系统主要包含两个部分 1.本地保存 我们知道NSLog打印的日志一般都是直接输出到控制台,开发人员可以在控制台直接看到实时打印的log,既然可以在控制台输出,那么能否将日志输出到其他地方呢,比如说 ...

  7. git学习之时光机穿梭(四)

    时光机穿梭 我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: Git is a distributed ver ...

  8. 【C#学习笔记】之用button使得textbox中数字的值增减

    代码段: string t = ""; t = mv.textBox2.Text; int n = int.Parse(t); n = n + 1; mv.textBox2.Tex ...

  9. MDwiki 调研

    下载解压 然后 mv mdwiki.html index.html 创建 一个index.md 然后就可以直接访问http://example.com/ 直接把你的md文件放在目录里面就可以了 cer ...

  10. 安装Struts2 类库

    现在,如果一切正常,那么你可以继续设置您的Struts 2框架.以下是简单的步骤,下载并安装在机器上Struts2. 请选择是否要安装Hibernate在Windows或Unix,然后继续进行下一个步 ...