之前想深入的了解学习下HTTP,所以就买了本砖头《HTTP权威指南》。最近一直在看,可是发现看书只有输入并没有输出,不行。所以就打算把自己的理解写成一系列的笔记,供以后翻阅。

大概画了张本章内容的思维导图:(画工渣渣,字丑(⊙﹏⊙)b)将就呗~

第一章 HTTP概述 其实就是简要的概述了接下来每一章的点。

可以用一句话来概括本章的内容:web客户端通过和服务器端建立连接,建立连接成功就通过HTTP传递请求,往服务器的特定位置获取需要的多媒体资源,再返回给web客户端。

1.HTTP——互联网的多媒体信使

HTTP其实是web客户端和服务端的信使。通俗的可以这样理解:用户在京东上买东西,快递员就充当信使的角色。这里的用户就是web客户端,京东就是服务器,而快递员就是我们的HTTP了。

2.web客户端和服务器

上面提及的web客户端和服务器端,一般情况下,我们用浏览器访问一个页面就会涉及到HTTP,而我们的浏览器就充当web客户端的角色,然后通过输入的网址发送请求,访问远端的服务器索取需要的资源,而服务器就是存放各类资源的容器,服务器获取到请求后,知道浏览器要什么,就告诉浏览器响应请求,把浏览器需要的资源返回给它,浏览器就能显示漂亮的界面啦。

3.资源

刚刚说到了,web服务器是存放资源的容器。资源有很多,比如一般的静态文件:文本文件,HTML文件等等,也还有其他非静态文件,图片,视频等等。

  1. 资源是分类型的,HTTP给它加了个MIME类型来辨别!
  • HTML格式文本由text/html类型来标记
  • 普通的ASCII文本由text/plain类型来标记
  • JPEG格式的图片由image/jpeg类型来标记
  • GIF格式的图片为image/gif类型来标记大专栏  http概述——http笔记一br/>…
  1. 每个资源都有一个名字,HTTP用URI(统一资源标识符)进行唯一标识并进行资源定位

URI有两种形式: URL和URN

  • URL(统一资源定位符)就是对特定的服务器里的某资源找到其特定位置。URL = 方案(HTTP/HTTPS) + 服务器地址 + 服务器某个资源。
  • URN(统一资源名)就是对某个资源的唯一名称,与当前资源的位置无关。

3.事务

上面说到web客户端会发送请求,服务器会响应请求。
所以事务 = 请求命令 + 响应结果。

HTTP支持几种请求命令,这些命令称为方法;可以理解为,用户可以通过不同方式在京东上买东西,可以通过手机端,PC端,打电话购买。这些方式就称为方法啦。
列举常用的几种方法:

  • GET
  • POST
  • DELETE
  • PUT
  • HEAD

HTTP响应会携带一个状态码,用来告诉请求是否成功。可以理解为,你在京东上买东西,会告诉你是否有货,是否能立即发送等状态,这些状态可以用状态码来表示。
列举常用的几种状态码:

  • 200
  • 302
  • 404

4.报文

报文其实是一种数据结构块。HTTP的请求和响应都是由报文进行结构化之后再通信的。其实报文就等于帮请求和响应命令化了下妆。
给它们各自添加了以下部分:

  • 起始行
  • 首部
  • 主体

5.连接

HTTP就是通过建立连接之后才能让客户端和服务器端通信。这么理解,河两岸的想要互相探望怎么办,我们可以建桥梁进行人与人之间的来往。我们的连接就等于是河里桥梁。我们的TCP连接就是属于万能的桥梁~

6. web的结构组件

web客户端和服务器端进行通信可能还会经过很多的组件,比如:

  • 代理
  • 缓存
  • 网关
  • 隧道
  • Agent代理
    以上的组件后面章节会提及。就先不详说、

磨刀不误砍柴工,相信学好HTTP,肯定能对前端的理解能更深入的~

最新文章

  1. js类型转换
  2. xcode8.0升级之后公司项目遇到的问题
  3. 【IOS】将字体大小不同的文字底部对齐
  4. *HDU1150 二分图
  5. C# 程序实现功能目录
  6. oracle 数据库信息查询
  7. nodejs之async异步编程
  8. TCP/IP详解学习笔记(1)-- 概述
  9. iOS9的那些坑 — — WeiboSDK registerApp启动就崩溃
  10. hdu 4091 Zombie’s Treasure Chest(数学规律+枚举)
  11. C# .Net 使用zxing.dll生成二维码,条形码
  12. 国内首款开源的互联网支付系统roncoo-pay
  13. springboot中使用自定义两级缓存
  14. ThreadPoolExecutor系列一——ThreadPoolExecutor 机制
  15. Python创建随机用户名密码并存放于Access数据库
  16. scrollReveal.js – 页面滚动显示动画JS
  17. v4l2功能列表大全【转】
  18. 进程的环境变量environ
  19. 自建mail服务器之一:dns解析
  20. Django入门项目实践(中)

热门文章

  1. 常用的模型集成方法介绍:bagging、boosting 、stacking
  2. jenkins-master-slave节点配置总结
  3. JS 2019-12-03T15:53:23.000+08:00 转化为 YYYY MM DD
  4. [原]C++新标准之std::thread
  5. 大厂面试题:今天复试百度PHP工程师
  6. xianduanshu
  7. 二十一、NFS服务
  8. 002.前端开发知识,前端基础HTML(2020-01-07)
  9. nc命令的用法
  10. linux 上zookeeper安装