Web安全实践1:搭建HTTPS(1)
均为个人笔记,欢迎纠错
课程链接
名词和历史
HTTPS = HTTP secure
HTTP = Hyper Text Transfer Protocol
Hyper Text 来自 HTML = Hyper Text Markup Language
Tim 实现了三种基础技术:
命名方案(URI),
通信协议(HTTP),
用于创建网页的语言(HTML)。
Linux指令
nc localhost 80
监听自己 IP 为 localhost 的 80 端口
HTTP
HTTP请求由:
请求行(request line)、
请求头部(header)、
空行 和
请求数据 四个部分组成。
第一部分:请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本。
第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息
第三部分:空行,请求头部后面的空行是必须的。
即使第四部分的请求数据为空,也必须有空行。
第四部分:请求数据也叫主体,可以添加任意的其他数据。
URL
定义和区别
URI = uniform resource identifier,统一资源标识符,用来唯一地标识一个资源。
URL = uniform resource locator,统一资源定位符,不仅唯一地标识一个资源,还指明如何定位到它,因此 URL 是 URI 的子集。
组成
http://stanford.edu:81/class?name=cs155#homework
协议部分:
该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。
在"HTTP"后面的“//”为分隔符。
域名部分:
URL中,也可以使用IP地址作为域名使用。
该URL的域名部分为“stanford.edu”。
端口部分:
跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符;
不是URL必须的部分,如果省略端口部分,将采用默认端口。
本例中的端口是81。
路径部分:
从域名后的第一个“/”开始到最后一个“/”为止,是路径部分;
虚拟目录也不是一个URL必须的部分。
本例中的路径是class。
文件名部分:
从域名后的最后一个“/”开始到“?”为止,是文件名部分,
如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,
如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分;
不是URL必须的部分,如果省略该部分,则使用默认的文件名。
锚部分:
从“#”开始到最后,都是锚部分;
不是URL必须的部分。
本例中的锚部分是“homework”。
参数部分:
从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分;
参数部分可以有多个参数,参数与参数之间用“&”作为分隔符;
不是URL必须的部分。
本例中的参数部分为“name=cs155”。