《图解HTTP》学习笔记

一.网络基础TCP/IP

为了理解HTTP,有必要事先了解一下TCP/IP协议族,HTTP属于它的一个子集

clipboard.png

1.什么是TCP/IP?

TCP/IP是互联网相关的各类协议的总称,这个协议族最重要的一点就是分层
(应用层,传输层,网络层,数据链路层)。

2.TCP/IP协议族各层的作用?

1)应用层:确定进程间通信的性质,满足用户需求
        FTP,DNS,HTTP
(2)传输层:向上一层提供可靠的端到端的服务
        tcp和udp
(3)网络层:完成网络上主机间分组(数据包)的传输
        ip,icmp,arp
(4)数据链路层:处理网络连接的硬件部分
        硬件驱动,nic等

3.TCP/IP通信传输流?

发送端进行端与端传输时,每经过一层必定会被打上一个该层所属的首部消息。反之在接收端,
每层会把对应的首部消息去掉

(1)传输层首部:

①TCP首部:20字节(包括原目端口,序号,确认号,校验和等)

clipboard.png

②UDP首部:8字节(开销小),源目端口号,长度,校验和

clipboard.png
(注意:这个伪首部其实tcp和udp都有,它既不网上传也不往下传,只是用于校验TCP/UDP的报文段)

(2)ip层首部:20字节(源目ip,生存时间,校验和等)
clipboard.png

(3)数据链路层首部(源目mac,类型,crc校验码(加在尾部))
clipboard.png

4.与HTTP密切相关的协议:IP,TCP,DNS

二.简单的http协议

1.http是一种无状态协议
对请求和响应都不做持久化处理,正因如此,导致出现了一些问题,如登录状态的持久化。所以后来出现了cookie session等持久化技术

2.告知服务器意图的HTTP方法?
(1)get:获取资源
(2)post:传输实体的主体(虽然get也可以传输实体的主体,但一般不用get方法进行传输)
(3)put:传输文件,像ftp的文件上传一样,要求在请求报文主体中包含文件,但由于自身不带验证机制,任何人都可以上传,因此存在安全问题
(4)head:和get方法一样,只是不返回报文的主体部分(用于确认uri的有效性及资源更新的日期等)
(5)delete:删除文件。按请求uri删除指定资源
(6)options:询问支持的方法(请求uri指定资源支持的方法)
(7)connect:使用隧道连接代理(使用ssl和tls把通信内容加密后经过网络隧道传输)

3.使用cookie的状态管理
http无状态的优点:不必保存状态,减少服务器的cpu以及内存资源的消耗
缺点:需要登录认证的页面在每次跳转页面时都需要重新登录

解决方案----cookie技术:
cookie会根据从服务器发送的响应报文内一个叫set-cookie的首部字段信息,通知客户端保存cookie,当下次客户端再往服务器发送请求时,客户端会自动在请求报文中加入cookie值后发送出去

三. HTTP报文内的HTTP信息

1.请求报文和响应报文的结构

clipboard.png

2.请求报文和响应报文的实例

clipboard.png

3.首部字段一览
(1)通用首部字段

clipboard.png

(2)请求首部字段

clipboard.png

(3)响应首部字段

clipboard.png

(4)实体首部字段

clipboard.png

四.返回结果的HTTP状态码

响应的状态码可以描述请求的处理结果

1.状态码的类别

clipboard.png
(1)200 客户端的请求在服务器端被正常处理
(2)204 请求处理成功,但没有可返回的资源
(3)206 表示客户端进行了范围请求

(4)301 永久重定向,请求的资源已被分配新的uri,以后应使用资源现在所指的URI
(5)302 临时性重定向
(6)304 客户端附带条件的请求,允许访问资源,但未满足条件

(7)400 请求报文中存在语法错误
(8)401 请求需要认证
(9)403 资源不允许被访问
(10)404 服务器上没有请求的资源

(11)500 服务器内部出现错误
(12)503 服务器超负荷或停机维护,无法处理请求

猜你喜欢

转载自blog.csdn.net/qq_34645958/article/details/80720214