小贾学习录
风雨自有归期
山水自有相逢
今日鸡汤
HTTP协议
介绍
HTTP协议----超文本传输协议,是一种用于客户端与服务器之间传输数据的协议。
通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 0K”,以及返回的内容,如请求的文件、错误消息、或者其它信息。
特点
HTTP协议是基于TCP/IP协议之上的应用层协议
1.简单性:HTTP协议使用简单
2.无连接性:每个http请求和响应都是相互独立的,服务器不会保留和客户端的连接状态,每个请求都需要、处理和断开。
3.无状态性:HTTP是无状态的,服务器不会保留先前请求的信息。
基本工作流程
1.客户端连接到Web服务器
一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。
2.客户端发送HTTP请求到服务器,包括请求方法(GET、POST等)、请求资源的URL、请求头字段等
一个请求报文由 请求行,请求头,空行,请求数据4部分组成。
3.服务器接收并解析请求,执行相应的操作,然后生成HTTP响应。
一个响应由 状态行,响应头,空行,响应数据4部分组成
4.服务器将HTTP响应发送回客户端,包括响应状态码、响应头字段、响应体等。
5.客户端接收并解析响应,根据响应进行相应的处理,如渲染页面、处理数据等。
HTTP请求与响应
HTTP遵循请求(request)响应(Response)模型
HTTP请求
GET /example HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36
Accept-Language: en-US,en;q=0.9
refer: 来源
一个http请求包括四部分
1.请求行 :包括请求方法,http协议版本信息
2.请求头 :HOST,User-agent 等,以键值对的形式存在
3.空行 :用于分割请求头和请求体
4.请求体 : 包含了需要通过POST或PUT方法发送给服务器的数据。
HTTP响应
一个http响应包括四部分
1.响应行(Status Line):包含了HTTP协议版本、状态码和状态描述信息
2.响应头(Response Headers):包含了关于响应的各种元数据信息,以键值对的形式存在
Content-Type: text/html; charset=UTF-8
Content-Length: 1234
Cache-Control: no-cache
Serever:服务器名字
3.空行(Blank Line):用于分隔响应头和响应体。
4.响应体(Response Body):包含了服务器返回给客户端的数据,如HTML页面、JSON数据、图片等。
常见状态码
1.200 OK:请求成功。服务器成功处理了请求,并返回了相应的内容。
2.301 Moved Permanently:永久重定向。请求的资源已经被永久移动到新的URL,客户端应该使用新的URL重新发起请求。
3.302 Found:临时重定向。请求的资源暂时被移动到了新的URL,客户端应该使用新的URL重新发起请求。
4.401 Unauthorized:未授权。表示客户端需要进行身份验证才能访问请求的资源。
5.403 Forbidden:禁止访问。表示客户端没有权限访问请求的资源。
6.404 Not Found:资源不存在。表示请求的资源在服务器上未找到。
7.500 :服务器内部错误