HTTP指南|青训营笔记

41 阅读2分钟

这是我参与「第四届青训营」笔记创作活动的的第8天

网络请求

当用户发起一个HTTP请求,浏览器有专门处理输入信息的部分,然后得到一个完整的请求地址。

随后会交由浏览器中专门负责发起请求的内核部分,发起一个真实请求,经过网络后到达所部署的服务器。

服务器的处理结果获得后,又会经过互联网回到我们的浏览器中,经过读取响应、渲染的一系列操作,最后页面便会加载完成,呈现给用户浏览。

TCP/IP(互联网相关所有协议族)网络模型的四层结构:分层管理,从下往上分别为数据链路层(Network Interface)网络层(Network)传输层(Transport)  和 应用层(Application)

protocol 协议

ip: 发送数据包的协议,两个重要组成:ip地址和mac地址

arp: 解析地址的协议,根据ip地址反查出mac地址

tcp: 可靠的字节流(为方便传输,将大块数据分割成片以报文段为单位的数据包)服务,三次握手确保传输到目标

URL: Uniform Resource Locator,统一资源定位符

简单的http协议

  • 请求方法: get post put delete head trace connect

  • SSL(Secure Sockets Layer)安全套接层

  • TLS(Transfer Layer security)传输层安全

  • HTTP:无状态协议。 每个请求之间都是孤立的,每个请求不知道之前携带过什么信息、做了什么事情。但我们也会想办法让无状态协议带上一些信息。

    HTTP/1.1起:持久连接

    使用Cookie:保留无状态特征,解决类似矛盾

  • 简单可扩展
    允许自定义头部(header),只需要client和server彼此能了解自定义的内容是什么含义即可。

  • 应用层协议,基于TCP协议

    超文本可以承载多种体材,包括处理页面所需要的HTML\CSS\JavaScript,以及和server通信所需要的一些API。

  • 分为请求响应两部分

HTTP报文结构

各结构及其相关说明:

结构作用
startlineRequest例:POST / HTTP/1.1 (Method + Path + Version) Response例:HTTP/1.1 403 Forbidden (Version + StatusCode + StatusMessage)
HTTP headers部分语义二者是一样的,有些是各自独有的。
empty line空行作为分隔。
body可以附带上一些实体信息。