HTTP基础知识(《图解HTTP》笔记)

一 基础名词

www(world wide web)万维网

3项www构建技术
  1. SGML 标准通用标志语言。页面文本标记语言。比如,HTML(HyperText Markup Language)超文本标记语言

  2. 文档传输协议。HTTP(HyperText Transfer Protocol)超文本传输协议

  3. 指定文档所在地址的URL(Uniform Resource Locater),统一资源定位符

TCP/IP

通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运作的,而HTTP是其子集

协议(protocl)

计算机与网络设备要相互通信,双方就必须基于相同的方法。比如如何探测目标,谁先谁后,怎么结束,电缆的规格,ip的选定方法,不同硬件、操作系统之间通信,都需要一种规则。

TCP/IP分层

优点:设计更有条理,易扩展、易维护

应用层:向用户提供应用服务时通信的活动。TCP/IP预存了各类通用的应用服务,比如HTTP、FTP、DNS

传输层:为上层提供数据传输。TCP 和 UDP

网络层:处理网络上流动的数据包。规定传输路线策略,比如IP协议

链路层:网络接口层,处理硬件部分。包括操作系统、硬件的设备驱动,网卡、光纤等。

IP协议

IP(Internet Protocol)网际协议位于网络层。几乎所有使用网络的系统都会用到。

作用:把数据包传送给对方。而要保证确实送达,需满足各种条件。最重要的两个是ip地址和MAC地址(Media Access Control Address)

ip指明了节点被分配到的地址,Mac指网卡所属的固定地址。

ip地址可以与Mac地址配对。IP可变,MAC基本不改。

没有人能够全面掌握网络传输状况,计算机和网络设备只能知道粗略路线,这种机制叫路由选择(routing)

确保可靠性的TCP

位于传输层,提供可靠的字节流服务。

为了方便传输,将大块数据分割成报文段(Segment)为单位的数据包

三次握手:为了确认对方的发送和接收能力都ok,使用TCP的标志(flag),即SYN(synchronize)和ACK(acknowledgement)。

第一次握手:server得知client发送能力ok

第二次握手:client得知,server的接收和发送能力ok

第三次握手:server得知client接收能力ok

如果只进行二次握手,如果client接收能力不ok,client第二次握手中就收不到包,而server已经建立了连接,导致client会继续发送连接请求,而server建立多个无用连接。

DNS(Domain Name System)

应用层,提供域名到IP地址的解析服务。主机名/域名,比如网址,更好记。IP地址,二进制数字。

URI

URI:uniform resource identifier 统一资源标志符,由某协议方案表示的资源的定位标志符。

URL:uniform resource locator 统一资源定位符,当协议为http时的URI。

格式:

二 简单的HTTP协议

通信时,对于单一条线路必定一客一服。

HTTP规定:请求由客户端发出,服务端响应。

请求报文组成

响应报文组成

不保存状态的http

无状态(stateless),不保留之前的一切通信信息。为了快,故意简单设计。

使用URI定位资源

请求报文需要包含URI,有3种方式

  1. URI为完整的请求URI,比如GET hackr.jp HTTP/1.1

  2. 在首部字段Host中写明域名或ip

  3. 如果访问服务器本身,比如"*",查询server支持的服务器的Http方法种类。

HTTP方法

用来告知意图

  • GET:获取资源,对象是文本或者CGI(common gateway interface)通用网关接口,指向程序,返回执行结果

  • POST:传输实体主体

  • PUT:传输文件,因为http不安全,一般不开。要配合web应用程序的验证机制,或者架构设计采用REST表征状态转移标准的同类web

  • HEAD:获得报文首部,一般用来确认资源的有效性

  • TRACE:将之前的请求通信环回给客户端的方法

  • CONNECT:要求用隧道协议连接代理,通过SSL和TLS(transport layer security)

cookie状态管理

为了保留无状态协议的快速,又解决无状态的不方便,引入cookie。

client——》登录操作——》server

client《——响应+cookie《——server

client——》请求+cookie——》server

报文结构

三 HTTP状态码

  • 1xx infor 接受请求正在处理

  • 2xx suc 请求正常处理

  • 3xx redirection 重定向,需要附加操作完成请求

  • 4xx client err 客户端错误

  • 5xx server err 服务端错误

常用14种

  • 200 ok

  • 204 no content

  • 206 partial content 范围请求成功执行

  • 301 moved permanently 永久重定向。资源已换新URI,不更新书签。

  • 302 found 临时重定向。不更新书签

  • 303 see other 使用GET重定向

  • 304 not modify 客户端附带条件的资源请求未满足

  • 400 bad request 请求语法错误

  • 401 unauth 需要HTTP认证

  • 403 forbidden 权限问题

  • 404 not found 没有或拒绝

  • 500 internal server err 服务端错误

  • 503 service unavailable server暂时超载或正在停机维护

四 http的协作web服务器

代理

中间人,设计代理的目的

  • 利用缓存技术减少网络贷款流量

  • 针对特定网站的访问控制

  • 获取访问日志

网关

转发其他服务器通信数据的服务器,能够接收请求并响应。

目的

  • 提升通信的安全性,通信线路加密

  • 可对接数据库

隧道

在相隔甚远的两者之间中传输,使用ssl等加密手段,并保持通信连接的应用程序。隧道不会解析报文,保持原样传输。

缓存

代理服务器或客户端本地磁盘保存的资源副本,以减少访问,节省时间。

五 HTTPS

HTTPS是在HTTP基础上增加加密认证机制。可以说,身披ssl外壳的HTTP,没有改动HTTP,而是增加中间ssl层。

使用的加密认证机制:

  • 防窃听:对通信加密,使用ssl(secure socket layer)或tls(transport layer security)

  • 防伪装:使用证书,由值得信任的第三方颁发,要钱。对付大量恶意请求DOS(denial of service)攻击

  • 防篡改:使用独立密钥+报文摘要来验证。折中的使用MD5和sha等散列值来验证,但防不住自己网页被改。

非对称加密

对称加密:双方同一套锁和钥匙,速度快

非对称加密:双方各有一套锁和钥匙,都把锁给对方,自己保留钥匙,这样对方用自己的锁加密,然后自己接收后再解密。速度慢,消耗资源多

HTTPS使用混合加密,先用非对称加密建立连接,然后用对称加密

六 HTML

超文本标记语言

超文本:一种文档系统,可将文档中任意位置的信息与其他信息建立关联

标记语言:在文档中穿插特别的字符串标签,用来修饰文档。被<>包围的就是标签,在标签的作用下,文字改变样式。

css

cascading style sheets 层叠样式表,可以指定如何展现网页中的各种元素,属于样式标准之一。

理念:将文档的结构与设计分离,达到解耦目的。

七 动态HTML

在客户端将静态HTML内容变成动态的总称

工具:

  1. 客户端脚本语言,JavaScript,动态改造

  2. DOM(document object Model 文档对象模型),用以操作HTML和XML文档的API(application program interface)。

八 web应用

通过web提供的应用程序,比如购物网站,网银,搜索

原本只能返回静态内容,现在可由web程序来实现动态返回。

CGI

common gateway interface 通用网关接口,是web接受到请求转发给程序的一组机制。一般由perl、PHP、ruby和C编写。

XML

extensible markup language 可扩展标记语言,可按应用目标进行扩展的通用标记语言,让互联网分享更容易。

XML和HTML都是从标准通用标记语言SGML简化而成。

JSON

JavaScript object notation 以JavaScript的对象表示法为基础的轻量级数据标记语言。

让数据更纯粹,并且json的字符串形式可被JavaScript轻易读入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值