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数组之前必须先对数组对象进行初始化.当数组的所有元素都被分配了合适的内存空间,并 ...
随机推荐
- leetcode-7-整数翻转
问题: package com.example.demo; public class Test7 { /** * 整数翻转 123,-123,120等数字 * 思路: * 1.获取原始数字的%10的余 ...
- linux+Apache开启伪静态配置
linux+Apache伪静态配置 一.环境准备:CentOS Linux release 7.4.1708 (Core)1.配置源[root@localhost ~]#yum install -y ...
- jgGrid常用操作--持续更新
最近有使用到jqGrid框架,有个需求是单击某个字段,比如name,然后把id带过去执行一个function,网上有说用线获取选中行,然后再得到id的方法,此方法经实验,必须要先选中才行,在用户没有进 ...
- 简单认识php
1.输出语句: echo 'hello world'; 2.声明变量用 $ 符号 $uname = 'andy'; 3. php 拼接字符串用 点(.) //设置中文编码 header("c ...
- go语言从例子开始之Example27.超时处理
超时 对于一个连接外部资源,或者其它一些需要花费执行时间的操作的程序而言是很重要的.得益于通道和 select,在 Go中实现超时操作是简洁而优雅的. Example: package main im ...
- pipeline语法之environment,dir(),deleteDir()方法,readJSON,writeJSON
一 environment指令指定一系列键值对,这些对值将被定义为所有步骤的环境变量或阶段特定步骤 environment{…}, 大括号里面写一些键值对,也就是定义一些变量并赋值,这些变量就是环境变 ...
- HttpClient类详解
文章链接:https://blog.csdn.net/justry_deng/article/details/81042379 HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了 ...
- Quartz.Net 任务调度之传递参数(2)
1.jobDetail //添加 //Key:Value jobDetail.JobDataMap.Add("张翼德", "张翼德"); jobDetail.J ...
- Service系统服务(一):安装一个KVM服务器、KVM平台构建及简单管理、virsh基本管理操作、xml配置文件的应用、为虚拟机制作快照备份、快建新虚拟机
一.安装一个KVM服务器 目标: 本例要求准备一台 RHEL7.2 服务器,将其搭建为KVM平台,主要完成下列操作: 1> 关闭本机的SELinux保护.防火墙服务 2> 挂载RHEL ...
- SQL中循环的实现方式
一.第一种方法,游标 定义游标 DECLARE cur_ClubHeadCash CURSOR FAST_FORWARD READ_ONLY FOR,循环每行 FETCH NEXT FROM cur_ ...