HTTP协议基础知识
1. IP 和端口
IP是分配给网卡的地址,用来找到网络上的一台设备,实现相互通信。
IP的格式是四个8位的二进制整数,可以转换成0-255的十进制数字。
因为接入网络的设备越来越多,IPV4不够用了,所以现在又诞生了 IPV6。
只有IP还不够,因为一个设备上运行的程序很多,如果要找到指定的程序,必须给
每个程序分配一个端口。端口的范围是0到65535。
比如FTP服务的21端口,HTTP服务的80端口, MySQL默认3306端口,Redis默
认6379端口。
2.URL的组成?
因为IP端口对于用户来说非常难以识别和记忆,所以我们又发明了域名(Domain Name) o因为域名是唯一的,而且会包含一些特殊含义,域名资源也非常珍贵,早年就 有人靠炒域名发了家。
我们在浏览器输入域名,就会自动地转换成IP,访问到相应的服务器。这个把域名 转换成IP的系统叫做DNS (Domain Name Server),域名解析服务。
URL的格式:
https://www. baidu.com https://map.baidu.com
包括几项:
协议,比如FTP、HTTP、HTTPS等等。
子域名,顶级域名的前缀,其实WWW就是一个约定俗成的二级域名,也叫子域名, 子域名可以有多级,比如QQ空间的地址,就是二级子域名:
https://user.qzone.qq.com/694100510
域名类型,比如.com、.net、・cn等等,是不同的组织机构管理的。
端口号,如果不写的话就是默认端口,比如HTTP的80端口,HTTPS的443端口。 后面就是资源路径和参数。
3.HTTP协议有什么特点?
简单快速:格式简单,通信快速
灵活:传输数据类型丰富
无连接:收到应答断开连接
无状态:不需要先前的信息,cookie, sessiono
4.HTTP协议的请求格式是什么样的?
主要包括:请求行(request line).请求头(header) s空行和请求数据
GET /item/bobo/23753047?fr-aladdin HTTP/1.1 Host: baike.baidu.com Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safan/537.36 LBBROWSER Accept: text/htmLapplication/xhtml+xmLapplication/xml;q=0.9,image/webp,*/*;q=0.8 Refer er: https://www.baidu.com/link?url=WiJWxlZKtr&wd=&eqid=86b000 Accept-Encoding: gzip, deflate, sdch, br Accept-Laiiguage: zh-CN,zh;q=0.8 Cookie: BAIKE_SHITONG=%7B%22dBAIA18d7c93a=1609302264
body没写,POST会携带请求数据。
5.HTTP协议的请求类型有哪些?
- GET:请求指定的页面信息,并返回实体主体。
- HEAD:类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头。
- POST:向指定资源提交数据进行处理请求,数据被包含在请求体中。
- PUT:从客户端向服务器传送的数据取代指定的文档的内容。
- DELETE:请求服务器删除指定的页面。
- CONNECT: HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
- OPTIONS:允许客户端查看服务器的性能。
- TRACE:回显服务器收到的请求,主要用于测试或诊断。
6.HTTP协议的响应格式是什么样的?
主要包括:状态行、消息头、空行和响应正文
HTTP/1.1 200 OK Connection: keep-alive Content-Encoding: deflate Content-Security-Policy-Report-Only: default-src https: Unsafe-inline1 iinsafe-evaf data: blob: ; report-uri https://reports.baidu.com/cspTeport/baike Content-Type: text/html; charset=UTF-8 Date: Wed, 30 Dec 2020 04:57:22 GMT Server: Apache Set-Cookie:BDUSS_BFESS=ZoWHk4VlQxVllseGs5dXVary: Accept-Encoding Transfer-Encoding: chunked
响应的body省略。
7. HTTP格式响应状态码有哪些?
响应码 | 类型 | 含义 |
1XX | Informational (信息性状态码) | 收的请求正在处理 |
2XX | Success (成功状态码) | 请求正常处理完毕 |
3XX | Redirection (重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error (客户端错误状态码) | 服务器无法处理请求 |
5XX | Server Error (服务器错误状态码) | 服务器处理请求出错 |
8.请求、响应的Header字段有哪些?
https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
通用Header字段
字段 | 含义 |
Cache-Control | 控制缓存的行为 |
Connection | 控制不再转发给代理的首部字段、管理持久连接 |
Date | 创建报文的日期时间 |
Pragma | 报文指令 |
Trailer | 报文末端的首部一览 |
Transfer-Encoding | 指定报文主体的传输编码方式 |
Upgrade | 升级为其他协议 |
Via | 代理服务器的相关信息 |
Warning | 错误通知 |
请求Header字段
字段 | 含义 | |
Accept | 用户代理可处理的媒, | 本类型 |
Accept-Charset | 优先的字符集 | |
Accept-Encoding | 优先的内容编码 | |
Accept-Language | 优先的语言(自然语言) | |
Authorization | Web认证信息 | |
Expect | 期待服务器的特定行为 | |
From | 用户的电子邮箱地址 | |
Host | 请求资源所在服务器 | |
If-Match | 比较实体标记(ETag) | |
If-Modified-Since | 比较资源的更新时间 | |
If-None-Match | 比较实体标记(与If-Match相反) | |
If-Range | 资源未更新时发送实, | '本Byte的范围请求 |
If-Unmodified-Since | 比较资源的更新时间(与If-Modified-Since相反) | |
Max-Forwards | 最大传输逐跳数 | |
Proxy-Authorization | 代理服务器要求客户端的认证信息 | |
Range | 实4 | 本的字节范围请求 |
Referer | ||
TE | 传输编码的优先级 | |
User-Agent | HTTP客户端程序的信息 |
响应头 Header
字段 | 含义 |
Accept-Ranges | 是否接受字节范围请求 |
Age | 推算资源创建经过时间 |
ETag | 资源的匹配信息 |
Location | 令客户端重定向至指定URI |
Proxy-Authenticate | 代理服务器对客户端的认证信息 |
Retry-After | 对再次发起请求的时机要求 |
Server | HTTP服务器的安装信息 |
Vary | 代理服务器缓存的管理信息 |
WWW-Authenticate | 服务器对客户端的认证信息 |
实体 Header
请求消息和响应消息都可以包含实体信息。
字段 | 含义 |
Allow | 资源可支持的HTTP方法 |
Content-Encoding | 实体主体适用的编码方式 |
Content-Language | 实体主体的自然语言 |
Content-Length | 实体主体的大小 |
Content-Location | 替代对应资源的URI |
Content-MD5 | 实体主体的报文摘要 |
Content-Range | 实体主体的位置范围 |
Content-Type | 实体主体的媒体类型 |
Expires | 实体主体过期的日期时间 |
Last-Modified | 资源的最后修改日期时间 |
好了这块内容就给大家讲解到这儿,下篇开始讲解Nginx的安装操作!!!