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》(日 上野宣)

最新文章

  1. 如何获得DataGrid中某行某列的对象
  2. 如何将Android Studio项目提交(更新)到github
  3. Bluetooth Baseband介绍
  4. Qt 之 自定义按钮 在鼠标 悬浮、按下、松开后的效果(全部通过QSS实现)
  5. Linux Command Line 备忘
  6. C++11for循环
  7. Java基础知识强化之IO流笔记61:输入流 和 输出流 使用总结
  8. 关于ubuntu上执行错误命令报错
  9. iOS RegexKitLite的使用以及常用的正则表达式
  10. Android studio dabao
  11. hadoop -- mapreduce执行过程
  12. ICP在pose-graph中的作用
  13. SDN第一次作业
  14. mac os x 10.9.3 升级到10.10.4 记录
  15. method.invoke()s
  16. 2018牛客网暑假ACM多校训练赛(第二场)E tree 动态规划
  17. MYSQL ROW_FORMAT=Compact
  18. C++Primer笔记——文本查询程序(原创,未使用类)
  19. 潭州课堂25班:Ph201805201 爬虫基础 第三课 urllib (课堂笔记)
  20. new usercontrol

热门文章

  1. Laravel的本地化
  2. UINavigationController改变动画效果
  3. free bsd x修改UTC-&gt;SCT
  4. ListView滚动到底部判断
  5. SpringBoot使用Thymeleaf模板
  6. 使用spring-boot-admin对spring-boot服务进行监控(转自牛逼的人物)
  7. NHibernate 组件基础 (第六篇)
  8. 机器学习13—PCA学习笔记
  9. C和C++格式转换
  10. 尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题。现在,她正在玩一个数值变换的游戏。她发现计算机中经常用不同的进制表示同一个数,如十进制数123表达为16进制时只包含两位数7、11(B),用八进制表示时为三位数1、7、3。按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11。