跳到主要内容

HTTP

第一部分:HTTP:Web的基础
第一章:HTTP概述
问题:
1.Web客户端与服务器是如何通信的.
答:使用HTTP协议
2.(表示Web内容的)资源来自何方.
答:来自HTTP服务器
MIME type:Content-type:image/jepg
主要的对象类型/特定的子类型
HTML格式 text/html
ASCLL文本 text/plain
JPEG图片 image/jpeg
。。。。

3.Web事务是怎么样工作的.
答:事务由一条请求命令和一个响应结果组成。
4.HTTP通信所使用的报文格式.
答:HTTP报文时纯文本,分为请求报文和响应报文。包括起始行、首部和主体。
起始行:在请求报文中说明要做什么,在响应报文中说明出现了说明情况。
首部字段:零个或多个首部字段。格式 key:value 以空行结束首部字段
主体(可选部分):可以是任意的二进制数据。为请求或者响应的数据。
5.底层TCP网络传输.
6.不同的HTTP协议变体.
7.因特网上安装的大量HTTP架构组件中的一部分。

URL格式:包括三部分
第一部分:说明了访问资源所使用的协议类型 http://
第二部分:服务器的因特网地址 www.baidu.com
其余部分:web服务器上的某个资源 /image/a.jpg
// 构成一个完整的URL http://www.baidu.com/image/a.jpg
// 含义:使用http协议去获取地址为www.baidu.com的web服务器上的/image/a.jpg的资源

HTTP方法:post、get、
状态码:200 OK
302 Rediect
404 Not Found
报文
HTTP报文都是纯文本。
只有两种HTTP报文:请求报文和响应报文.
报文分为三个部分
起始行
首部字段
主体

HTTP协议是应用层协议,他把网络通信交给TCP协议
HTTP 应用层
TCP 传输层
IP 网络层
链路接口 数据链路层
网络硬件 物理层

通过DNS(域名解析系统)将域名转换为IP
HTTP的默认端口为80端口

基本的浏览器连接处理
1.用户输入URL http://www.baidu.com:80/tools.html
2.根据 www.baidu.com 获取IP (DNS)
3.获取端口号
4.连接IP为112.80.248.75服务器的80端口
5.发送get请求
6.读取响应报文
7.关闭连接

协议版本
代理
缓存

第二章 URL与资源
方案://服务器位置/路径 http://www.baidu.com/tools.html
URL字符集
US-ASCII
编码机制
使用%进行转义 (%+十六进制)
字符限制(理解为关键字)
% / . .. # ? ; : $ + @ & = {}|\^~[]'<>"

HTTPS 默认端口为443

第三章 HTTP报文
报文是如何流动的
HTTP报文的三个组成部分
请求和响应报文之间的区别
请求报文支持的各种功能
和响应报文一起返回的各种状态码
各种各样的HTTP首部都是用来干什么的。
1.报文流
2.报文结构
一组HTTP首部总是应该以一个空行(单个CRLF)结束,即使没有首部和实体的主体部分也应该如此。
1.起始行
请求行
请求方法 请求URL HTTP版本 使用空格来分隔
GET /test/hi-there.txt HTTP/1.1
响应行
HTTP版本 状态码 描述状态码的短语
HTTP1.0 200 OK
// 常用的HTTP方法
GET 从服务器获取一份文档
POST 向服务器发送需要处理的数据
// 状态码
100 - 101 信息提示
200 - 206 表示成功
300 - 305 表示资源已被移走(重定向)
400 - 415 表示客户端的请求出错(客户端错误)
500 - 505 表示服务器出错了(服务器错误)
// 常见
100 收到请求的初始部分,请继续发送
使用地方:客户端想向服务器发送一个实体,但是在发送之前要查看服
务器是否会接受这个实体,
101 Switching Protocols
200 请求成功
401 未授权 需要输入用户名和密码
404 服务器无法找到URL

2.首部(以一个空行结束)
首部分类
通用首部:既可以出现在请求报文中,也可出现在响应报文中
请求首部
响应首部
实体首部:描述主体的长度和内容,或者资源本省
扩展首部
// 语法 CRLF指回车换行
名字:字段值CRLF
// 常见首部
Date
Content-length
Content-type
Accept

3.实体的主体部分(可选的)

请求方法
GET:通常用于请求服务器发送某个资源
HEAD:响应报文中没有响应实体的主体部分,返回的首部与GET请求返回的首部完全一致
PUT:向服务器写入文档
POST:向服务器输入数据
TRACE
OPTIONS
DELETE

第四章 连接管理
1.HTTP是如何使用TCP连接的
2.TCP连接的时延、瓶颈以及存在的障碍
3.HTTP的优化,包括并行连接、kepp-alive(持久连接)和管道化连接
4.管理连接时应该以及不应该做的事情

HTTP HTTPS
HTTP 应用层 HTTP 应用层
TCP 传输层 TSLorSSL 安全层
IP 网络层 TCP 传输层
网络接口 数据链路层 IP 网络层
网络接口 数据链路层

HTTP在传输报文时,以流的形式将报文内容通过TCP连接按序传输,TCP在收到流的内容后,
将其切割在若干个IP数据包(一个IP分组首部20字节、一个TCP首部20字节、一个TCP数据块0或者多个字节)中。
// IP数据报的格式

TCP连接是由四个值来确定的(源ID、源端口、目的IP、目的端口)
两条不同的TCP连接不能拥有相同的四个值(可以部分相同)

使用TCP套接字编程