Http小结
Posted rkit
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Http小结相关的知识,希望对你有一定的参考价值。
第一章 了解Web及网络基础
1.TCP/IP协议簇(IEEE 802.3、FDDI、ICMP、TCP、HTTP、IP、FTP、DNS、PPPPoE、SNMP、UDP)
2.TCP/IP分层:应用层、传输层、网络层、数据链路层--(组块化设计)
3.应用层(FTP、DNS等协议)
传输层(TCP、UDP等协议)
网络层(传递数据包)
数据链路层(网络接口层,连接硬件)
4.基本通信方式(封装):
客户端(套层传输)--应用层(HTTP)->传输层(TCP..)->网络层(IP)->链路层(网络)
服务器(拆层传输)--链路层(网络)->网络层(IP)->传输层(TCP..)->应用层(HTTP)
5.IP地址和IP网际协议(Internet Protocol)
6.网络传输(路由选择)
7.TCP协议的三次握手-flag---SYN、ACK
(1)发送端:发送标有SYN的数据包
(2)接收端:接收标有SYN的数据包并添加ACK标记进行回传
(3)发送端:确认相关数据包,进行通信传输
8.DNS(域名解析)IP--域名
9.URI和URL(服务器域名、端口号--Web默认80、文件路径访问..)
第二章简单的HTTP协议
1.HTTP通信例子(响应头、请求头---参数---响应---Cookie)
(1)发送请求:GET / HTTP/1.1
HOST:hacker.jp
(2)发送响应:HTTP/1.1 200 OK (http协议版本、状态码)
Date :...(日期)
Content-Length:...(多少字节的数据)
Content-Type:text/html
<html>....(主体)
2.HTTP协议(简单无状态)---不做持久化处理,减少服务器的CPU及内存资源的消耗。
3.HTTP+Cooike---持久化处理
4.HTTP1.1传输方法:GET(获取资源--响应内容<texthtml>)-------------(※)
POST(传输实体主体--信息)
PUT(传输文件--不带验证机制,存在安全问题)
HEAD(获取报文首部)--不返回报文主体
DELETE(删除文件--不带验证机制,存在安全问题)
OPTIONS(询问支持的方法)--返回服务器支持的方法
TRACE(追踪路径)--查询发送出去的请求是怎么被加工修改/篡改的。不常用---易引发XST(跨站追踪)攻击
CONNECT(要求用隧道协议来连接代理)--SSL(安全套接层)、TLS(传输层安全)
格式:CONNECT 代理服务器名:端口号 HTTP 版本
5.持久连接旨在建立1次TCP连接后进行多次请求和响应的交互---减轻服务器端的负载、通信开销
6.管线化(Pipelining)--不等待响应,直接发送下一个请求
7.HTTP+Cookie传输
客户端:发送请求
服务器:生成cookie,记住是向谁发送的,响应中添加Cookie---<Set-Cookie: sid=..;path=/;....>
客户端:保存Cookie。---下次请求可以附带Cookie进行持久化认证处理。
第三章HTTP报文内的HTTP信息
1.HTTP报文的结构
报文首部:服务器端或客户端处理的请求或响应的内容及属性
空行CR+LF:CR(Carriage Return,回车符:16进制0x0d)和LF(Line Feed,换行符:16进制0x0a)---划分作用
报文主体:应被发送的数据
2.请求报文结构:
GET /HTTP/1.1 请求行
Host:...
User-Agent:...
Accept:text/html,...... 各种首部字段(通用首部、请求首部、响应首部、实体首部)
空行CR+LF
响应报文结构:
HTTP/1.1 200 OK 状态行
Date:..
Server:Apache
Last-Modified:....... 各种首部字段
空行CR+LF
<html xmls="">
.......
</html> 报文主体(message entity)
3.编码提升传输速率
3.1message(HTTP通信的基本单位)和entity(请求或响应的有效载荷数据<补充项>)
3.2压缩传输的内容编码--gzip(GNU zip)、compress(UNIX系统的标准压缩)、deflate(zlib)、identity(不进行编码)
3.3分割发送的分块传输编码---传输大容量的数据时,可分割传输,逐步显示页面内容----接收的客户端负责解码
4.发送多种数据的多部分对象集合
4.1MIME---多用途因特网邮件扩展。
以上是关于Http小结的主要内容,如果未能解决你的问题,请参考以下文章