概念
Http:超文本传输协议(HypertextTransfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。
Https:超文本传输安全协议(全称:Hypertext Transfer Protocol Secure [5]),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输ssl协议保证了传输过程的安全性 [1]。
两个时期
http1.0
客户端像服务端发起请求,得到一个web资源,断开连接
http2.0
客户端像服务端发起请求,得到多个web资源
http请求
客户端发起请求
http响应
服务端响应
http状态码
1xx:信息性状态码
100 Continue:服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。
101 Switching Protocols:服务器正在根据客户端的请求切换协议。
2xx:成功状态码
200 OK:请求已成功处理。
202 Accepted:供处理的请求已被接受,但是处理未完成。
204 No Content:没有新文档。
206 Partial Content:客户端发送了一个带有Range头的GET请求,服务器完成了它。
3xx:重定向状态码
300 Multiple Choices:多重选择。
302 Found/Moved Temporarily:临时性重定向。
305 Use Proxy:客户请求的文档应该通过Location头所指明的代理服务器提取。
4xx:客户端错误状态码
400 Bad Request:服务器未能理解请求。
401 Unauthorized:未授权。
403 Forbidden:禁止访问。
404 Not Found:未找到。
...(还有其他多种特定的4xx状态码,表示不同的客户端错误情况)
5xx:服务器错误状态码
500 Internal Server Error:服务器端在执行请求时发生了错误。
502 Bad Gateway:服务器网关错误。
...(还有其他多种特定的5xx状态码,表示不同的服务器错误情况)
访问一个网站的过程
域名解析
1.首先有一个域名url,点击回车
2.首先在本机c盘中的C:\Windows\System32\drivers\etc中d的hosts文件寻找是否有此域名,找到则显示
3.找不到就通过dns域名解析器,全世界的域名都在这里,找到就显示,找不到就显示错误
建立TCP连接:
-
- 通过解析得到的IP地址,浏览器尝试与目标服务器建立TCP(传输控制协议)连接。
- TCP连接建立过程包括三次握手:客户端发送SYN段给服务器,服务器回应SYN+ACK段,客户端再回应ACK段,确认连接建立。
发送HTTP请求:
-
- 一旦TCP连接建立成功,浏览器会发送一个HTTP请求给服务器。这个请求包含了用户想要访问的具体资源(如网页、图片等)以及其他元信息。
- HTTP请求主要有两种类型:GET和POST。GET请求通常用于请求数据,而POST请求则用于提交数据。
服务器处理请求:
-
- 服务器接收到HTTP请求后,会根据请求的内容进行相应的处理,这可能包括查询数据库、执行服务器端脚本等。
服务器发送HTTP响应:
-
- 服务器处理完请求后,会生成一个HTTP响应,其中包含了请求的资源内容(如HTML文件、图片等)以及其他响应元信息。
- HTTP响应会发送回客户端(即浏览器)。
浏览器接收并处理HTTP响应:
-
- 浏览器接收到HTTP响应后,会解析响应中的内容。
- 如果是HTML文件,浏览器会将其解析为DOM(文档对象模型)树,并应用CSS样式和执行JavaScript代码。
渲染页面:
-
- 浏览器将解析后的HTML、CSS和JavaScript内容渲染成可视化的网页。
- 在渲染过程中,可能还会发现页面引用了其他资源(如图片、样式表、脚本文件等),此时浏览器会重复上述的HTTP请求过程以加载这些资源。
页面显示:
-
- 最终,浏览器将渲染好的网页呈现给用户。
- 用户可以在浏览器中浏览和与网页进行交互。
关闭TCP连接:
-
- 在请求和响应过程结束后,TCP连接通常会被关闭(尽管HTTP/1.1协议支持持久连接,即多个请求和响应可以在同一TCP连接上连续进行)。
- 如果需要获取其他资源,浏览器会重新建立新的TCP连接。