http请求
1.请求行:
包括三部分:
第一部分:请求方式(7种)
get(常用的)
post(常用的)
delete
put
head
options
trace
第二部分:URI
什么是URI? 统一资源标识符。代表网络中某个资源的名字。但是通过URI是无法定位资源的。
什么是URL?统一资源定位符。代表网络中某个资源,同时,通过URL是可以定位到该资源的。
URI和URL什么关系,有什么区别?
URL包括URI
http://localhost:8080/servlet123/index.html 这是URL。
/servlet123/index.html 这是URI。
第三部分:
HTTP协议版本号
2.请求头:
请求的主机
主机的端口
浏览器信息
平台信息
cookie等信息
…
3.空白行:
空白行是用来区分“请求头”和“请求体”
4.请求体:
向服务器发送的具体数据。
http的响应
1.状态行:
三部分组成
第一部分:
协议版本号(HTTP/1.1)
第二部分:
状态码(HTTP协议中规定的响应状态号。不同的响应结果对应不同的号码。)
200 表示请求响应成功,正常结束。
404表示访问的资源不存在,通常是因为要么是你路径写错了,要么是路径写对了,但是服务器中对应的资源并没有启动成功。总之404错误是前端错误。
405表示前端发送的请求方式与后端请求的处理方式不一致时发生:
比如:前端是POST请求,后端的处理方式按照get方式进行处理时,发生405
比如:前端是GET请求,后端的处理方式按照post方式进行处理时,发生405
500表示服务器端的程序出现了异常。一般会认为是服务器端的错误导致的。
以4开始的,一般是浏览器端的错误导致的。
以5开始的,一般是服务器端的错误导致的。
第三部分:
状态的描述信息
ok 表示正常成功结束。
not found 表示资源找不到。
2.响应头:
响应的内容类型
响应的内容长度
响应的时间
…
3.空白行:
用来分隔“响应头”和“响应体”的。
4.响应体:
响应体就是响应的正文,这些内容是一个长的字符串,这个字符串被浏览器渲染,解释并执行,最终展示出效果。
get/post请求两者区别
第1点:
get请求只能发送普通的字符串。并且发送的字符串长度有限制,不同的浏览器限制不同。这个没有明确的规范
post请求可以发送任何类型的数据,包括普通字符串,流媒体等信息:视频、声音、图片,理论上没有长度限制
第2点:
get请求支持缓存:
https://wwwa.123123aafaf.cn/show1231/animal123456.jpg
任何一个get请求最终的“响应结果”都会被浏览器缓存起来。在浏览器缓存当中:
一个get请求的路径a 对应 一个资源。
一个get请求的路径b 对应 一个资源。
一个get请求的路径c 对应 一个资源。
post请求不支持缓存。(POST是用来修改服务器端的资源的。)
post请求之后,服务器“响应的结果”不会被浏览器缓存起来。