HTTP请求与响应

HTTP概述

HTTP,超文本传输协议。这个协议详细的规定了浏览器和万维网服务器之间通信的规则。

HTTP基于请求/响应模式的!

HTTP是无状态协议,如FTP就是有状态。  # 无状态就指协议对于事务处理没有记忆能力。它不会记录上一次请求。

URL:统一资源定位符:协议名://域名:端口/路径

请求协议格式    

请求首行         #说明了请求的方式,请求路径和版本。例如:GET/index.html HTTP/1.1

请求信息        #请求头名称:请求头内容,即为key:vales格式,例如Host:localhost

空行          #用于份合请求体

请求体          #GET没有请求体,只有POST有请求体

GET请求

HTTP默认的请求方式就是GET

没有请求体

数据必须再1K之内

GET请求数据会暴露在浏览器的地址栏中

POST请求

数据不会出现地址栏

数据大小理论没有上线

有请求体

请求体中如果存在中文,会使用URL编码

常见的头

请求头(客户端向服务器发送):

Accept       #说明浏览器可以接受服务器回发的类型 一般浏览器*/*表示所有类型

Host        #请求主机地址

Accept-Language    #浏览器支持的语言环境

Accept-Encoding  #可以接受的压缩格式

Connection     #状态有两种,一种是keep-alive 另外close,keep-alive

User-Agent     #系统、浏览器版本等信息

Cookie       #存储用户信息,记录一个身份标识

Referer      #请求的来源,如果使用地址栏则不会有Referen

keep-alive表示之前的握手还可以用在接下来的请求当中去

close表示服务器给客户端发送信息之后就断开了

ps:目前主流浏览器一般不会对服务器发起connection:close的请求

响应头(服务端返回客户端的响应):

Content-Type:text/html;charset=UTF-8       #说明使用何种格式编码数据

Content-Length                    #请求体的长度

Content-Encoding:gzip              #告诉客户端服务器发送的资源编码格式

Date:Tue,03 Apr 2020 03:52:28        #服务器发送资源的时间

Server:Tengine/14.6               #服务器和版本信息

Transfer-Encoding:chunked           #告诉客户端,服务器发送的资源方式是分块的

Refresh:5;url=http://baidu.com         #用于重定向,或者一个新资源被创建时,默认5秒后刷新重定向

在b站发现了一个比较详细的请求头和响应头详解:https://www.bilibili.com/read/cv6259072/

状态码:

200    #请求成功

404    #表示资源不见了

503    #接收连接过于频繁,如爬虫特别容易出503,也有一定反爬。

304    #浏览器接收到304相应的信息,说明文件未被修改,直接从缓存中返回内容显示处理。

 

 
posted @ 2020-07-30 21:50  Shuranima  阅读(204)  评论(0)    收藏  举报