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数组之前必须先对数组对象进行初始化.当数组的所有元素都被分配了合适的内存空间,并 ...
随机推荐
- 58.Partition Equal Subset Sum(判断一个数组是否可以分成和相等的两个数组)
Level: Medium 题目描述: Given a non-empty array containing only positive integers, find if the array c ...
- rgba转化为16进制在线工具
https://www.sioe.cn/yingyong/yanse-rgb-16/
- nginx实现高性能负载均衡的Tomcat集群
1. 安装软件: nginx 两个apache-tomcat 安装过程省略. 2.配置两个tomcat的http端口,第一个为18080,第二个为28080 注意:需要把server.xml文件中所有 ...
- vue使用textare如何正确统计输入字符个数
最近vue做微信公众号的开发,使用weui的textarea输入限制字数(官网例子),并且显示.代码如下:再安卓和电脑都没有问题,但是ios输入的时候,显示字数不正确, 但是输入之后删除其中一个,就可 ...
- WebDriverAgent安装
这次安装WebDriverAgent的过程可谓坎坷呀,最后还是大牛远程解决问题,自己的确差太远,记录一下过程吧 尽量升级Xcode到最新版,保持iPhone的版本大于9.3 终端进入目标文件夹WebD ...
- 【leetcode】908. Smallest Range I
题目如下: 解题思路:简单的不能再简单的题目了,对于任意一个A[i]来说,其可能的最小的最大值是A[i]-K,最大的最小值是A[i]+K.遍历数组,求出所有元素中最大的最小值和最小的最大值,两者之差( ...
- MariaDB 管理
在尝试运行MariaDB之前,首先确定其当前状态,运行或关闭. 有三个选项用于启动和停止MariaDB - 运行mysqld(MariaDB脚本). 运行mysqld_safe启动脚本. 运行mysq ...
- Java排序算法 [选择、冒泡、快排]
选择排序: 简述:从数组的第一个元素开始,依次与其他所有的元素对比,如果比自身大或小(取决于升序或降序)交换位置. package com.sort; import java.util.Arrays; ...
- 重磅 | 阿里云与MongoDB达成战略合作,成为全球唯一提供最新版MongoDB的云厂商
MongoDB是业界最受欢迎的开源数据库之一,2019年一份面向开发者的数据库调查报告中,MongoDB以 24.6%的使用率占据次席. 阿里云是国内最早提供MongoDB服务的云厂商,提供完全兼容M ...
- Json中判断是JSONArray还是JSONObject
聪明的人总是能想到别人会遇到的问题,提前给出解决方案. List propList = new ArrayList(); //装载数据的list JSONArray array= JSONArray. ...