赞
踩
目录
HTTP请求格式如下图
HTTP请求报文的构成如下图
Header | 解释 |
Accept | 指定客户端能够接收的内容类型 |
Referer | 先前网页的地址,当前请求网页紧随其后,即来路 |
Accept-Language | 浏览器可接受的语言 |
User-Agent | User-Agent的内容包含发出请求的用户信息 |
Content-Type | 请求的与实体对应的MIME信息 |
Host | 指定请求的服务器的域名和端口号 |
Content-Length | 请求的内容长度 |
Connection | 表示是否需要持久连接。(HTTP 1.1 默认进行持久连接) |
Cache-Control | 指定请求和响应遵循的缓存机制 |
Cookie | HTTP请求发送时,会把保存在该请求域下的所有cookie值一起发送给web服务器 |
HTTP响应格式如下图
HTTP响应报文的格式如下图
Header | 解释 |
Server | Web服务器软件名称 |
Content-Type | 返回内容的MIME类型 |
Transfer-Encoding | 文件传输编码 |
Date | 原始服务器消息发出的时间 |
通用信息头 General
既能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,可以理解为为了一眼瞄过去,就能了解报文信息而存在。
Request URL:请求的URL
Request Method:请求的方法类型
Status Code:响应的状态码和结果
Remote Address:远程服务器地址
Referrer Policy:从哪个页面跳转过来的,图中的含义为:当发生降级(比如从 https:// 跳转到 http:// )时,不传递 Referrer 报头。
响应头 Response Headers
Connection:当前连接是否需要保持
Content-Encoding:与请求报头Accept-Encoding对应,告诉浏览器服务端采用的是什么压缩编码
Content-Type:返回的响应MIME类型与编码,用于告诉浏览器它发送的数据属于什么文件类型
Date:原始服务器消息发出的时间
Transfer-Encoding:传输编码
Content-Length:指明实体正文的长度,用以字节方式存储的十进制数字来表示
Content-Language:描述了资源所用的自然语言,与Accept-Language对应
Keep-Alive:保持连接的时间
Server:使用的服务器名称
请求头 Request Headers
Accept:告诉服务器可以接受的文件格式
Accept-Encoding:指定浏览器可以支持的web服务器返回的内容压缩编码类型
Accept-Language:浏览器支持的语言
Cache-Control:指定请求和响应遵循的缓存机制
Connection:表示是否需要持久连接
Host:用于指定被请求资源的Internet主机和端口号
Origin:用来说明请求从哪里发起的,包括,且仅仅包括协议和域名
Referer:告诉服务器是从哪个网站链接过来的,服务器请求的原始资源的URI
User-Agent:客户端将它的操作系统、浏览器和其他属性告诉服务器
Accept-Charset:用于指定客户端接受的字符集
Cookie:HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器
HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范。HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动态分配的。当我们没有指定端口访问时,浏览器会默认帮我们添加80端口。我们也可以自己指定访问端口如:http://www.ip138.com:80。 需要注意的是,现在大多数访问都使用了HTTPS协议,而HTTPS的默认端口为443,如果使用80端口访问HTTPS协议的服务器可能会被拒绝。
HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法
常见的HTTP状态码
200 | 请求成功 |
301 | 跳转到指定地址,跳转的地址通过Location指定,代表永久性转移 |
302 | 跳转到指定地址,跳转的地址通过Location指定,代表暂时性转移 |
304 | 本地缓存的资源是最新的,浏览器从本地缓存中读取对应的资源 |
400 | 客户端请求有语法错误,不能被服务器识别 |
403 | 服务器收到请求,但是拒绝提供服务 |
404 | 请求的资源不存在 |
500 | 服务器发生不可预期的错误 |
502 | 网关错误 |
503 | 服务器暂时不可用 |
HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议。
你也可以说:HTTPS = HTTP + SSL
HTTPS 在 HTTP 应用层的基础上使用安全套接字层作为子层。
超文本传输协议 (HTTP) 是一个用来通过互联网传输和接收信息的协议。HTTP 使用请求/响应的过程,因此信息可在服务器间快速、轻松而且精确的进行传输。当你访问 Web 页面的时候你就是在使用 HTTP 协议,但 HTTP 是不安全的,可以轻松窃听你跟 Web 服务器之间的数据传输。在很多情况下,客户和服务器之间传输的是敏感信息,需要防止未经授权的访问。为了满足这个要求,网景公司(Netscape)推出了 HTTPS,也就是基于安全套接字层的 HTTP 协议。
大多数情况下,HTTP 和 HTTPS 是相同的,因为都是采用同一个基础的协议,作为 HTTP 或 HTTPS 客户端——浏览器,设立一个连接到 Web 服务器指定的端口。当服务器接收到请求,它会返回一个状态码以及消息,这个回应可能是请求信息或者指示某个错误发送的错误信息。系统使用统一资源定位器 URI 模式,因此资源可以被唯一指定。而 HTTPS 和 HTTP 唯一不同的只是一个协议头(https)的说明,其他都是一样的。
1. HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头
2. HTTP 是不安全的,而 HTTPS 是安全的
3. HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443
4. 在 OSI 网络模型中,HTTP 工作于应用层,而 HTTPS 工作在传输层
5. HTTP 无需加密,而 HTTPS 对传输的数据进行加密
6. HTTP 无需证书,而 HTTPS 需要认证证书
使用 HTTPS 连接时,服务器要求有公钥和签名的证书。
当使用 https 连接,服务器响应初始连接,并提供它所支持的加密方法。作为回应,客户端选择一个连接方法,并且客户端和服务器端交换证书验证彼此身份。完成之后,在确保使用相同密钥的情况下传输加密信息,然后关闭连接。为了提供 https 连接支持,服务器必须有一个
公钥证书,该证书包含经过证书机构认证的密钥信息,大部分证书都是通过第三方机构授权的,以保证证书是安全的。
换句话说,HTTPS 跟 HTTP 一样,只不过增加了 SSL。
HTTP 包含如下动作:
1. 浏览器打开一个 TCP 连接
2. 浏览器发送 HTTP 请求到服务器端
3. 服务器发送 HTTP 回应信息到浏览器
4. TCP 连接关闭
SSL 包含如下动作:
1. 验证服务器端
2. 允许客户端和服务器端选择加密算法和密码,确保双方都支持
3. 验证客户端(可选)
4. 使用公钥加密技术来生成共享加密数据
5. 创建一个加密的 SSL 连接
6. 基于该 SSL 连接传递 HTTP 请求
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。