HTTP协议学习笔记

[TOC]

第一章 WEB网络基础

1.1 TCP/IP协议族

应用层、传输层、网络层、数据链路层

  1. 应用层:向用户提供应用服务时的通信活动,FTP、HTTP协议就在该层

  2. 传输层:网络连接中的两台计算机提供数据传输、该层主要协议有TCP、UDP

  3. 网络层:用来处理网络传输中的数据包,数据包是网络传输中的最小数据单位

  4. 数据链路层:处理网络连接中的硬件设备,包括操作系统、网络适配器、光纤等等

图解HTTP

图出自《图解HTTP》一书

这里写图片描述

图出自《图解HTTP》一书

1.2 IP协议

IP协议是一种网络层的协议,用来处理数据包的传送。包括了两个重要的地址,IP地址和、MAC地址。
IP地址指明了节点被分配的地址,MAC地址则指明了网卡(网络适配器)固定的地址。IP地址可以变换,MAC地址就基本不变

1.3 DNS协议

DNS(Domain Name System)是位于应用层的协议,负责域名解析服务,DNS通过域名查找IP地址,或逆向从IP地址反向查找域名

第二章 HTTP协议简介

2.1 HTTP协议

HTTP协议是一种无状态协议,也即不保存请求和响应的状态。HTTP协议这样设计是为了提高响应效率。但是随着互联网的发展,一些特定场景就需要有状态的。所以HTTP也加进来了Cookie技术。

2.2 URI和URL

URI(Uniform Resource Identifier),也即统一资源标记协议。URL(Uniform Resource Location),也即统一资源地址。可见URL是URI的子集。

2.3 HTTP报文

用于HTTP协议交互的信息被称作HTTP报文。请求端(客户端)的报文被称作请求报文,响应端(服务器端)的报文被称作响应报文。HTTP报文包括报文首部和报文主体。

请求报文构成


这里写图片描述

响应报文构成


这里写图片描述
这里写图片描述
这里写图片描述

2.4 HTTP方法

GET:获取资源

POST:传输实体主体

PUT:传输文件
PUT方法不带验证机制,所以不安全

OPTIONS:请求URI指定资源支持的方法

HEAD:获取报文首部

DELETE:删除文件
HTTP/1.0的DELETE和PUT方法一样不带验证机制,所以文件上传和删除都不安全

TRACE:将服务器之前的请求通信环回给客户端

CONNECT:要求用隧道协议连接代理,主要用隧道协议进行TCP通信。主要使用SSL(Secure Sockets Layer)和TLS(Transport Layer Security)协议将通信内容加密后经网络隧道传输

2.5 HTTP状态码

(1). 1xx 正在处理

(2). 2xx 成功

200(OK):表示请求成功

204(No Content):表示请求成功,但是没有资源返回

206(Partial Content):表示客户端进行范围请求,服务端执行GET方法进行响应

(3). 3xx 重定向

301(Moved Permanently):永久性重定向。表示请求的URI已经被指定了新的URI,用户以后要用新的URI访问。<br>

302(Found):临时性重定向。表示请求的URI已经被指定了新的URI,用户(本次)要使用新的URI访问。与301的不同就是URI改变是临时的,以后可以重新变回来 <br>

303(See Other):303和302功能一样,不过303要求以GET方法获取资源 <br>

304(Not Modified):表示客户端发送附带条件的请求,但是未符合条件。

307(Temporary Redirect):临时重定向。和302的区别就是遵照浏览器的标准,不会从POST变成GET。

(4). 4xx 客户端错误

400(Bad Request):表示请求报文中存在语法错误。

401(Unauthorized):表示请求需要有通过HTTP认证(BASIC认证,DIGEST认证)

403(Forbidden):表示请求访问被服务器拒绝了。因权限问题被服务器拒绝的访问都可以是403。

404(Not Found):表示服务器没有找到请求资源

(5). 5xx 服务器错误

500(Internal Server Error):服务端在执行请求时发生错误

503(Service Unavailable):表示服务器超负载或者在这进行停机维护。

第三章 通信数据转发程序

HTTP协议进行通信时,不仅需要客户端和服务端,还需要一些进行转发的程序,比如代理、网关、隧道

3.1 代理

代理是一种具有转发功能的程序,接收客户端的请求,并转发给服务端。

使用代理服务器的目的是利用缓存技术,减少网络带宽流量的使用,代理实现是先将副本放在代理服务器上,客户端访问的话,先从代理服务器获取资源,没有的话,再从源服务器获取资源。使用缓存的代理称作缓存代理。

如果代理服务器不对报文进行处理的,称作透明代理,反之成为非透明代理。

代理是不会改变URI的,通过代理服务器转发请求或者响应协议时,会在报文首部追加写上Via信息,如图所示,图来自《图解HTTP图书》一书


代理

3.2 网关

网关是转发其它服务器通信数据的程序。接收从客户端发生的数据,并进行处理

网关可以将HTTP协议转换为其它协议,然后再转发给非HTTP服务器。网关可以提供通信的安全性,网关可以在通信线路加密以确保安全性

3.3 隧道

隧道是远程客户端和服务端两者之间进行中转,并保持双方通信连接的应用程序。隧道使用SSL等加密手段进行加密处理,保证远程客户端和服务端之间通信的安全性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容