HTTP权威指南读书笔记——第一章(HTTP概述)
1、HTTP(Hypertext Transfer Protocol,超文本传输协议)是在万维网上进行通信时所使用的协议方案,HTTP是应用层协议,无需关心网络通信的细节,细节交给了传输层协议TCP/IP,HTTP协议位于TCP的上层,HTTP使用TCP来传输其报文数据
2、在客户端向服务器发送报文前,需要用网际协议(Internet Protocol, IP)地址和端口号在客户端和服务器之间建立一条TCP/IP连接,所以需要知道服务器的IP地址及在服务器上运行的特定软件相关的TCP端口号。所以这里延伸出一个问题:浏览器中输入URL后发生了什么?
(1)浏览器冲URL中解析出服务器的主机名(2)浏览器将主机名通过DNS解析转换成服务器的IP地址(3)浏览器将端口号(如果有的话)从URL中解析出来(4)浏览器建立一条与服务器的TCP连接(5)浏览器向服务器发送一条请求报文(6)服务器向浏览器回送一条响应报文(7)关闭连接,浏览器显示文档
3、几个概念:
(1)资源:web服务器是web资源的宿主。资源可以是静态资源或动态资源。静态资源比如文本文件、html文件、图片、视频等,动态资源比如一些可以根据需要生成内容的软件程序
媒体类型(MIME):web服务器会为所有HTTP对象数据附加一个MIME类型,浏览器会对不同的MIME类型数据进行相应的处理,比如对于text/html类型会调用html解析器进行解析、通过计算机声卡播放音频文件等
URI(Uniform Resource Identifier,统一资源标识符):有两种形式(URL和URN),URL(统一资源定位符)是最常见的形式,它描述了如何从一个精确、固定的位置获取资源,URL包括三个部分:方案(scheme)、服务器的因特网地址、服务器的某个资源,URN(统一资源名),是作为特定内容的唯一名称使用的,与资源地址无关,用的不多不赘述
(2)事务:一条HTTP事务由一条请求命令和一个响应结果组成。这种通信时通过名为HTTP报文的格式化数据块进行的。
方法(HTTP方法):每条HTTP请求报文都包含一个方法,这个方法会告诉服务器要执行什么动作,常见的HTTP方法:GET、PUT、DELETE、POST、HEAD
状态码:每条HTTP响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码,告知客户端是否请求成功,或者是否需要采取其他动作
(3)报文:HTTP报文都是纯文本,不是二进制代码,包含三个部分:起始行(在请求报文中用来说明做些什么,在响应报文中说明出现了什么情况)、首部字段(每个首部字段都包含一个名字和一个值,用冒号分隔)、主体(可选,请求主体包括发送给服务器的数据,响应主体包括返回给客户端的数据,主体可以包含任何二进制数据,比如图片、视频、音轨、软件程序)
(4)代理:代理位于客户端和服务器之间,接收客户端的HTTP请求,并转发给服务器(可能会对请求进行修改之后转发)
(5)缓存:web缓存或代理缓存是一种特殊的HTTP代理服务器,客户端从附近的缓存下载文档会比远程web服务器下载快得多
(6)网关:网关(gateway)是一种特殊的服务器,通常用于将HTTP流量转换成其他协议
(7)隧道:隧道是在建立起来之后,会在两条连接(HTTP连接和SSL连接)之间对原始数据进行盲转发的HTTP应用程序,常见用途是通过HTTP连接承载加密的安全套接字层(SSL,Secure Sockets Layer)流量,这样SSL流量就可以穿过只允许web流量通过的防火墙了
(8)Agent代理:是代表用户发起的HTTP请求的客户端程序,类型:浏览器、网络蜘蛛、web机器人等
HTTP权威指南读书笔记——第一章(HTTP概述)的更多相关文章
- Java核心技术(卷一)读书笔记——第一章(概述)
1.Java不提供多重继承,通过接口来实现.一个类只能继承一个父类,但是可以同时实现多个接口. 2.Java中的int类型的大小是固定的32位,以避免代码移植时候的不兼容问题.唯一的限制是int类型的 ...
- JavaScript权威指南读书笔记【第一章】
第一章 JavaScript概述 前端三大技能: HTML: 描述网页内容 CSS: 描述网页样式 JavaScript: 描述网页行为 特点:动态.弱类型.适合面向对象和函数式编程的风格 语法源自J ...
- JS权威指南读书笔记(一)
第一章 JavaScript概述 1 JS是一门高端的.动态的.弱类型的编程语言,非常适合面向对象和函数式的编程风格. 第二章 词法结构 1 JS程序是用Unicode字符集编写的. 2 JS是区 ...
- css权威指南读书笔记-第10章浮动和定位
这一章看了之后真是豁然开朗,之前虽然写了圣杯布局和双飞翼布局,有些地方也是模糊的,现在打算总结之后再写一遍. 以下都是从<css权威指南>中摘抄的我认为很有用的说明. 浮动元素 一个元素浮 ...
- Android权威编程指南读书笔记(1-2章)
第一章 Android应用初体验 1.4用户界面设计 <?xml version="1.0" encoding="utf-8"?> ADT21开发版 ...
- HTTP权威指南读书笔记
HTTP权威指南笔记 读书有两种境界,第一种境界是将书读薄,另一种是读厚.本篇文章就是HTTP权威指南的读书笔记,算是读书的第一重境界,将厚书读薄.文章对HTTP的一些关键概念做了比较详细的概述,通读 ...
- HTTP权威指南阅读记录 - 第一章
最近终于开始看<HTTP权威指南>了,第一章主要是简介一些基本的概念.下面列出一些常用,但还不是很了解的简单概念. 一.常见概念: 1.媒体类型 因特网上有数千种不同的数据类型,HTTP仔 ...
- 《css3实战》读书笔记 第一章 基于CSS需求而编写的HTML.
笔记说明 <CSS3实战手册第3版(影印版)>可以消除Web设计工作的痛苦,并且带给你:HTML--重新入门.如果你是HTML新手,你会学到如何以CSS友好的方式进行基本页面构造.若你是H ...
- 《疯狂Java:突破程序员基本功的16课》读书笔记-第一章 数组与内存控制
很早以前就听过李刚老师的疯狂java系列很不错,所以最近找一本拿来拜读,再此做下读书笔记,促进更好的消化. 使用Java数组之前必须先对数组对象进行初始化.当数组的所有元素都被分配了合适的内存空间,并 ...
随机推荐
- Hibernate4教程六:性能提升和二级缓存
抓取策略(fetching strategy)是指:当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候,Hibernate如何获取关联对象的策略.抓取策略可以在O/R映射的元数 ...
- seaweedfs使用记录
搭建seaweedfs 在github上面clone,然后cd到docker目录使用docker-compose up -d就可以启动seaweedfs 启动以后通过xxx:9333可以看到效果 上传 ...
- C#编程—第四天
五一放假三天 ······续写第三天的if else-if.if语句的嵌套.很多例题(还有很多没有整理好的) 5.4下午初步学习循环语句for 老师布置了几个小练习题 循环语句 循环:可以反复执行某段 ...
- 力扣 —— Two Sum ( 两数之和) python实现
题目描述: 中文: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利 ...
- mysql-alter语句常用操作
删除列 alter table table-name drop col-name 增加列(多列) alter table table-name add col-name col-type commen ...
- ubuntu下oracle 数据库安装
环境:腾讯云 一. 由于腾讯云直接下载oracle太慢,先安装docker 1.sudo apt update 2.接下来,使用apt安装一些允许通过HTTPS才能使用的软件包: sudo apt i ...
- 关于Python实现Interface base64加解密方法
''' 以下Python Code运行环境为windows10, Python版本为3.5.3 涉及的库:base64,json,unittest ''' # coding=utf-8 # impor ...
- 【leetcode】452. Minimum Number of Arrows to Burst Balloons
题目如下: 解题思路:本题可以采用贪心算法.首先把balloons数组按end从小到大排序,然后让第一个arrow的值等于第一个元素的end,依次遍历数组,如果arrow不在当前元素的start到en ...
- MariaDB 删除表
在本章中,我们将学习删除表. 表删除很容易,但记住所有删除的表是不可恢复的. 表删除的一般语法如下 - DROP TABLE table_name ; 存在执行表删除的两个选项:使用命令提示符或PHP ...
- cerebro使用
一.安装cerebro 上传插件到任意路径 tar zxvf 解压插件包 [root@ngsocdev14 es]# ls cerebro-0.8.3.zip software [root@ngsoc ...