HTTP/HTTPS协议笔记
HTTP/HTTPS协议
一、协议简介
1. HTTP协议
HTTP(HyperText Transfer Protocol)叫超文本传输协议,它是Web服务器和客户端直接进行数据传输的规则,是一个无效态的应用层协议。
2.HTTPS协议
HTTPS(HyperText Transfer Protacol over SecureSocket Layer),是以安全伪目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。
3.HTTP协议工作原理
在用户访问https://www.baidu.com/index.html的链接后,浏览器和Web服务器执行以下操作:
- 浏览器分析超链接中的URL
- 浏览器向DNS请求解析www.baidu.com的IP地址
- DNS将解析出的IP地址220.181.38.148返回浏览器
- 浏览器与服务器建立TCP连接(443端口,HTTP的话是80端口)
- 浏览器请求文档:GET /index.html
- 服务器给出相应,将文档index.html发送给浏览器
- 释放TCP连接
- 浏览器显示index.html中的内容

持久性连接与非持久性连接
1.非持久性连接
即浏览器没请求一个Web文档,就要创建一个新的连接,当文档传输完毕后,连接就立刻释放。
- HTTP 0.9、HTTP 1.0采用此连接方式
- 对于请求Web页中包含多个其他文档对象(如图像、声音、视频等)的链接的情况,由于请求每个链接对应的文档都要创建新连接,所以效率低下。
2.持久性连接
即在一个连接中,可以进行多次文档的请求和相应。服务器在发送完响应后,并不立即释放连接,浏览器可以使用该连接继续请求其他文档。连接保持的时间可以有双方进行协商。
二、HTTP报文分析
1.HTTP请求报文结构


实体部分是请求数据。
2.HTTP响应报文结构


3.HTTP请求方法
(1) GET:请求指定的页面信息,并返回实体主体。
(2)POST:向指定资源提交数据进行处理请求(比如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立或者已有的资源的修改。
(3)PUT :向指定资源位置上传其最新内容。
(4)OPTION:返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向Web服务器发送"*"的请求来测试服务器的功能性。
(5)HEAD:向服务器索要与GET请求相一致的相应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获得包含在响应消息头中的元信息。
4.HTTP状态码
| 状态码 | 响应类型 | 含义 |
|---|---|---|
| 1xx | 信息性状态码(Informational) | 服务器正在处理请求 |
| 2xx | 成功状态码(Success) | 请求已正常处理完毕 |
| 3xx | 重定向状态码(Redirection) | 需要进行额外操作以完成请求 |
| 4xx | 客户端错误状态码(Client Error) | 客户端原因导致服务器无法处理请求 |
| 5x | 服务器错误状态码(Server Error) | 服务器原因导致处理请求出错 |
常见的状态码:
| 状态码 | 含义 |
|---|---|
| 200 | 请求被服务器正常处理 |
| 301 | 永久重定向,资源已永久分配新URL |
| 302 | 临时重定向,资源已临时分配新URL |
| 401 | 需要通过HTTP认证,或认证失败 |
| 403 | 请求资源被拒绝 |
| 404 | 无法找到请求资源 |
| 500 | 服务器故障或Web应用故障 |
| 503 | 服务器超负载或停机维护 |
5.HTTP头部
| 头(header) | 类型 | 说明 |
|---|---|---|
| User-Agent | 请求 | 浏览器和它平台的信息。 |
| Host | 请求 | 服务其的DNS名称。从URL中取出来,必需。 |
| Referer | 请求 | 用户从该URL代表的页面出发访问当前请求的页面。 |
| Cookie | 请求 | 将以前设置的Cookie送回服务器,可以用来作为会话信息。 |
| Server | 响应 | 关于服务器的信息,如Apache/2.4.39 |
| Location | 响应 | 请求客户端将请求发送给别处,即重定向到另一个URL。 |
| Set-Cookie | 响应 | 服务器希望客户保存一个Cookie。 |
三、HTTP协议中的URL
1.URL(统一资源定位符)
(1)定义:互联网上标准资源的地址,互联网上的每一个文件都有一个唯一的URL。
(2)URL格式
协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.后缀?参数=值#标志
相对URL:/目录/文件名.文件后缀?参数=值#标志
例子:http://www.xxx.com:80/test/index.html?boardID=1&ID=1&page=1#name
(3)URL中的协议
http -- 超文本传输协议
https -- 用安全套接字层传输的超文本传输协议
ftp -- 文件传输协议
gopher -- Gopher协议
file -- 当地电脑或网上分享的文件
2.URL编码

3.同源策略



浙公网安备 33010602011771号