Http详解

Http详解

一、http请求

http请求包括:请求行、请求头、请求体

1.post和get请求的区别

我们点开html的页面,填写请求参数后,客户端向服务器发送post或get请求是根据html中的method参数的。

选择post请求:<form action="/Example04/index.jsp" method="post">
选择get请求:<form action="/Example04/index.jsp" method="post">
用户名:<input type="text" name="username"/></br>
密码:<input type="password" name="password"/></br>
<input type="submit" value="提交"/>
</form>

post请求的请求参数在请求体中,而get请求的请求参数在请求行的网址中,客户端的直接在网址中显示请求参数,所以不安全。

POST /Example04/index.jsp HTTP/1.1    请求行
Accept: image/jpeg, application/x-ms-application, image/gif,      application/xaml+xml,image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, application/vnd.ms-powerpoint, application/vnd.ms-excel, */*
Referer: http://localhost:8080/Example04/form.html
Accept-Language: en-US,zh-CN;q=0.5
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; qdesk 2.4.1265.203; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.3)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 30
Connection: Keep-Alive
Cache-Control: no-cache
 
username=zhangsan&password=123  请求体



GET /Example04?username=zhangsan&password=123 HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, application/vnd.ms-powerpoint, application/vnd.ms-excel, */*
Accept-Language: en-US,zh-CN;q=0.5
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; qdesk 2.4.1265.203; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.3)
Accept-Encoding: gzip, deflate
Host: localhost:8080
Connection: Keep-Alive
Cookie: JSESSIONID=5386A9443729D7EB0B61E38A9C7CF52F

2.http1.0和1.1的区别

客户端每次向服务器发送一次请求时,服务器端会每次都会相应一次,1.0版本在一次连接一次相应就会断开客户端和服务器的相应,而再次连接又会浪费资源。而1.1版本则会一直保存连接。请求体中的Connection: Keep-Alive则表示时1.1的请求响应保存不断开,Connection: close表示,客户端和服务器已经断开。

3.cookie和session

客户端在第一次打开服务器网页时,服务器会通过Set-Cookie设置客户端的cookie值(记录了session_id),该网页再次连接服务器时,会发送自己的cookie值,服务器就知道是同一个网页。而服务器端在给客户端发送也会创建一个session,而得到相同cookie不同服务器进程,就可以通过同一个session进行通信。

4.常见请求头

Accept:告诉服务端,该请求所能支持的响应数据类型
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

Referer	先前网页的地址,防盗链,统计访问该服务器的网站来源
Referer: http://localhost/login.html

Cokkie:客户端的Cookie
Cookie: JSESSIONID=15982C27F7507C7FDAF0F97161F634B5

User-Agent:浏览器的属性
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36

Connection:表示客户端与服务连接状态;Keep-Alive表示持久连接,close已关闭
Connection: keep-alive

Host:请求的服务器主机名
Host: 39.108.107.149:8080

Accept-Encoding:浏览器通知服务器,浏览器支持的数据压缩格式。如GZIP压缩
Accept-Encoding: gzip, deflate

Accept-Language:浏览器通知服务器,浏览器支持的语言
Accept-Language: zh-CN,zh;q=0.9

二、http响应

1.响应格式:HTTP的响应报文也由三部分组成(响应行+响应头+响应体)

在这里插入图片描述

2.状态码

1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码
2. 2xx:成功。代表:200
3. 3xx:重定向。
   302(重定向,服务器没有该资源但指导资源位置,服务器就给出资源位置给客户端)
   304(访问缓存,客户端缓存中有请求的数据,同时服务也没有修改该数据内容时,会发送304,表示客户端在自己的缓存中找)
4. 4xx:客户端错误。
   404(请求路径没有对应的资源) 
   405:请求方式没有对应的doXxx方法
5. 5xx:服务器端错误。代表:500(服务器内部出现异常,语法错误等)

3.响应头

Set-Cookie	设置Http Cookie	
Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1

Content-Type	返回内容的MIME类型	
Content-Type: text/html; charset=utf-8

Content-Language	响应体的语言	
Content-Language: en,zh

Content-Location	请求资源可替代的备用的另一地址	
Content-Location: /index.htm

响应头和请求头格式大全

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值