request
叫请求:从客户端发到服务端的叫请求,请求的方式有很多种,而你最常用的无非就是 get
和 post
这两种。 response
叫响应:从服务端给回客户端的叫响应。 文字描述:客户端可以通过浏览器请求一个资源(可能是一个页面,一个图片,一个PDF文档等),服务器接收到客户端的这个请求之后按照请求中的路径来查找这个资源,如果找到了,创建一个对应该请求的响应,把找到的内容放到响应中,格式化响应后,返回这个响应(包括响应头和响应体),如果没找到,直接返回错误代码404,浏览器接到响应后,解析HTML然后展示给用户,所有浏览器都知道该如何处理HTML。
get
请求是最简单的HTTP请求,它的主要任务就是要从服务器拿些东西回来。 get
请求大概长这个样子: http://127.0.0.1:8080/my_project/html/index.html?a=1&b=2
http://
:告诉服务器使用什么通信协议。 127.0.0.1
:物理服务器的IP地址,这里也可以使用服务器名。 8080
:端口是可选的,一个服务器支持多个端口,默认为80。 my_project/html/
:所请求的资源在服务器上的路径。 index.html
:所请求的资源名,可以是一个HTML页面、一个Servlet、一个图片等任何资源,大部分服务器会默认寻找index.html。 ?a=1&b=2
: get
请求可以在路径末尾添加一个查询串(KV对),以 ?
开头,以 &
分割,这里长度有限制。 客户端:"嘿!服务器,给我拿(get)一下这个主机上面的一个页面,地址是/html/index.html,哦对了,这有一些给你的参数a=1和b=2,还有就是请快点!"
服务端:"好的,我会去拿(get)那个页面,也谢谢你提供的参数,不过有一点要说明,咱俩的HTTP协议中,可没有包含 '快一点' 这一项!"
get
请求的时候,我们可以通过浏览器的开发者模式观察到这次请求的常规信息、响应信息以及请求头内容等,如果你的 get
请求末尾伴有查询串的话,会在开发者模式中看到 Query String Parameters
表格,里面就是请求中携带的参数。 发送请求
- F12
- Network
- 请求路径
- Headers
Headers
右边的 Response
是响应体,响应体中就是返回的具体资源。 get
方式没有请求体。 常规信息表:General
属性 | 描述 |
---|---|
RequestURL |
本次请求的详细地址,如果伴随参数查询串,则会拼接在URL末尾 |
RequestMethod |
本次请求的方式 |
Status Code |
状态码,常见200和404 |
响应信息表:ResponseHeaders
属性 | 描述 |
---|---|
Content-Length |
本次响应的字节大小 |
Content-Type |
本次响应的数据类型 |
Date |
本次响应发生的时间 |
Content-Type |
本次响应的数据类型 |
请求头信息表:Request Headers
属性 | 描述 |
---|---|
Accept |
可以解析的MIME类型,如果将来给我的响应内容是这些类型中的,我可以解析,如果不是这些,我将无法正确解析它们 |
User-Agent |
此次请求的浏览器信息 |
post
请求是一种更强大的请求,是 get
请求的一种拓展版,利用 post
请求可以请求某个资源,于此同时还可以向服务器发送一些表单数据,这些数据被放置在请求体中。 post
请求和 get
请求主要有三点区别: get post post
/servlet/testServlet.do
,不要忘了看我的请求体,那里面有我发送的一些重要数据!" 概念:当浏览器发送给一个 post
请求的时候,我们可以通过浏览器的开发者模式观察到这次请求的请求头内容,查找方式和get一样,除了常规信息、请求头和响应头外,还可以看到请求体 Form Data
的内容,如图2-4-1。