996技术站 - 活在未来 | KingSun966技术站,极客带你看世界!https://www.996station.com程序员开发指南Descriptionhttps://guide.996station.com
HTTP 和 HTTPS
HTTP是什么
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。
HTTP 请求响应流程
DNS
是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,由解析器和域名服务器组成的。 域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。
一般一个域名的 DNS解析时间 在10~60毫秒之间。
一个域名必须对应一个IP地址,而一个IP地址不一定会有域名。
HTTP的请求与响应
URL格式
格式说明:
scheme://host[:port]/path/…/[?query-string][#anchor]
- scheme:协议(例如:http, https, ftp)
- host:服务器的IP地址或者域名
- port:服务器的端口(如果是走协议默认端口,缺省端口80)
- path:访问资源的路径
- query-string:参数,发送给http服务器的数据
- anchor:锚(跳转到网页的指定锚点位置)
HTTP 请求
请求格式
案例
请求方式
根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
请求方式 | 描述 |
---|---|
GET | 请求指定的页面信息,并返回实体主体。 |
HEAD | 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 |
POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 |
PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
DELETE | 请求服务器删除指定的页面。 |
CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 |
OPTIONS | 允许客户端查看服务器的性能。 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
常见请求头
请求头 | 作用 |
---|---|
Host | 主机和端口号 |
Connection | 链接类型 |
Upgrade-Insecure-Requests | 升级为 HTTPS 请求 |
User-Agent | 浏览器名称 |
Accept | 传输文件类型 |
Referer | 页面跳转处 |
Accept-Encoding | 文件编解码格式 |
Cookie | Cookie |
x-requested-with : XMLHttpRequest | ajax 请求 |
HTTP 响应
响应格式
HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。
响应头信息
请求头 | 作用 |
---|---|
Location | 这个头配合302状态码使用,告诉用户端找谁。 |
Server | 服务器通过这个头,告诉浏览器服务器的类型 |
Content-Length | 服务器通过这个头,告诉浏览器回送数据的长度。 |
Content-Type | 服务器通过这个头,回送数据的类型 |
Connection | 服务器通过这个头,响应完是保持链接还是关闭链接。 |
HTTP 状态码
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。
HTTP状态码的英文为HTTP Status Code。
- 常见的HTTP状态码:
- 200 - 请求成功
- 301 - 资源(网页等)被永久转移到其它URL
- 404 - 请求的资源(网页等)不存在
- 500 - 内部服务器错误
HTTP 与 HTTPS
HTTP 缺陷
通讯使用明文(不加密),在通讯过程中内容可能会被窃听和篡改