首页 > Web开发 > 详细

HTTP请求简单了解

时间:2019-11-29 18:18:55      阅读:69      评论:0      收藏:0      [点我收藏+]

HTTP字面意思即超文本传输协议

 

HTTP请求(request)包含三个部分:

请求行(Request line) + 请求头(Request header) + 请求体(body)

 

请求行又包括三部分:

method + request-URI + http-version

method代表请求方法,即我们常用的get、post等请求方式,下图代表各请求方法的意义

get 

通过请求URI获得资源
post  用于添加新的资源,用于表单提交

put 

用于修改某个内容
delete  删除某个内容
connect  用于代理进行传输例如SSL
options  询问可以执行那些方法
patch  部分文档更该
propfind  查看属性
proppatch  设置属性
mkcol  创建集合
copy  拷贝
move  移动
lock  加锁
unlock  解锁
trace  用于远程诊断服务器
head  类似于get,用于检查对象是否存在用于得到元数据

request-URI代表请求资源的路径

http-version即http协议的版本号,当前使用的主要是HTTP/1.1版本

 

请求头部分关键字:

Accept:指浏览器或其他客户可以接爱的MIME文件格式。Servlet可以根据它判断并返回适当的文件格式。

User-Agent:客户端使用的操作系统和浏览器的名称和版本。例:user-agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36

Host:主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的(端口号不填的话默认为80)。例:Host:http://www.baidu.com

Referer:表明产生请求的网页URL,告诉服务器请求是从哪个链接过来的,常用于重定向请求。例:Referer:http://www.zhihuishu.com

Origin:用来说明请求从哪里发起的,包括,且仅仅包括协议和域名,这个参数一般只存在于CORS跨域请求中。例:Origin:http://www.zhihu.com

Accept-Langeuage:指出浏览器可以接受的语言种类,如en或en-us,指英语。例:Accept-Language: en-us

Accept-Charset:指出浏览器可以接受的字符编码。英文浏览器的默认值是ISO-8859-1.

Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件并加速文件传递速度。浏览器在接收到Web响应之后先解码,然后再检查文件格式。

connection:用来告诉服务器是否可以维持固定的HTTP连接。例:Connection: keep-alive(从HTTP/1.1开始默认开启),同一个页面多个请求时,后面的请求继续使用前面请求的TCP连接通道;Connection: close,下次请求需要重新建立TCP连接

Cookie:浏览器用这个属性向服务器发送Cookie。Cookie是在浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现会话功能,很多用户登录信息也会通过cookie传递。

Content-Type:用来表名request的内容类型。可以用HttpServletRequest的getContentType()方法取得。例:Content-Type: application/x-www-form-urlencoded

Content-Length:发送给HTTP服务器数据的长度。例:Content-Length: 38

 

其中对于不同的请求,请求头中的参数是可变的,有一些是非必填的

 

请求体body

get方法请求body为空,post方法则把传参放到body中

HTTP响应(response)

跟请求类似,也是由响应行、响应头、响应体组成

响应行

Response 消息中的第一行叫做响应行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。例:HTTP/1.1 200 OK(HTTP/1.1表示协议和版本,200是状态码,OK是原因)

状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response.

HTTP/1.1中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别

1XX  提示信息 - 表示请求已被成功接收,继续处理

2XX  成功 - 表示请求已被成功接收,理解,接受(一般请求成功最常见的就是200)

3XX  重定向 - 要完成请求必须进行更进一步的处理

4XX  客户端错误 -  请求有语法错误或请求无法实现

5XX  服务器端错误 -   服务器未能实现合法的请求

响应头(response header)

类似于请求头,下面是主要的关键字

Location: http://www.baidu.com/index.html  服务器要求浏览器访问的URL地址
Server: apache tomcat  服务器告诉浏览器服务器的名字
Content-Encoding: gzip 服务器通知浏览器需要接收的压缩数据类型
Content-Length: 80  服务器通知浏览器需要接收的语言类型
Content-Language: zh-cn 服务器通知浏览器需要接收的语言类型
Content-Type: text/html; charset=GBK 服务器通知浏览器需要接收的类型和编码方式
Last-Modified: Tue,25 Jul 2016 20:28:50 GMT 服务器通知浏览器浏览器访问的请求最后一次修改的时间
Refresh: 1; url=http://www.baidu.com 服务器通知浏览器1秒后刷新,并且访问指定的URL页面
Content-Disposition: attachment; filename=aaa.zip 服务器通知浏览器以下载方式打开资源
Transfer-Encoding: chunked 服务器通知浏览器以分块方式下载文件
Set-Cookie: SS=QQ=5Lb nQ; path=/search 服务器通知浏览器需要接收数据缓存到浏览器
Expires: -1 a.服务器要求浏览器不要缓存来自服务器的web页面
Cache-Control: no-cache  b.服务器要求浏览器不要缓存来自服务器的web页面
Pragma: no-cache  c.服务器要求浏览器不要缓存来自服务器的web页面,三种方式都要写,不同浏览器方式不同
Connection: close/Keep-Alive 服务器通知浏览器是否保持连接
Date: Tue,25 Jul 2016 20:28:50 GMT 服务器通知浏览器的时间

 

 

响应体

请求返回的具体内容一般都会放在这里

HTTP请求简单了解

原文:https://www.cnblogs.com/lv1up/p/11944466.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!