南平网站设计,php网站开发工程师招聘网,怎么用域名做邮箱网站,wordpress stats上一篇文章我们详细了解了HTTP请求#xff0c;本篇文章我们来简单认识下HTTP响应中的状态码#xff0c;并尝试使用第三方工具来构造一个HTTP请求。
认识状态码
状态码表示返回的响应结果如何#xff08;访问成功还是失败#xff0c;失败的话是啥原因#xff09;。
HTTP…上一篇文章我们详细了解了HTTP请求本篇文章我们来简单认识下HTTP响应中的状态码并尝试使用第三方工具来构造一个HTTP请求。
认识状态码
状态码表示返回的响应结果如何访问成功还是失败失败的话是啥原因。
HTTP中的状态码都是标准文档约定好的
上面的状态码不需要全部记住只需要记住常见的几个即可
200 OK
这是最常见的状态码表示访问成功。
404 Not Found
表示访问资源没有找到。浏览器中输入一个URL就可以访问对方服务器上的一个具体资源。如果这个资源不存在那么就会出现404 NotFound,例如输入一个https://www.bilibili.com/abcde.html,此时就是尝试访问bilibili的abcde.html这个资源这个资源并不存在。
此时就会看到这样的页面为了符合动漫视频软件的特点bilibili使用html设计了一个好康的页面并不是所有404都是这样
百度的404就非常简洁明了
403 Forbidden
表示请求资源没有权限访问。类似于JavaSE中的封装
例如打开一个码云的私有仓库就会出现403您的访问受限 (403) (gitee.com)
405 Method Not Allowed
你当前的设备不支持这个方法。
你的服务器只支持GET请求但是你发了个POST就会出现405 Method Not Allowed这里无法进行演示需要学习Spring后才可能出现这里我们了解即可。
500 Internal Sever Error
服务器挂了。
504 Gateway TimeOut
访问服务器超时可能是网络连接断了也可能是服务器挂了。
302 Move temporarily
临时重定向。 重定向 类似于我们换手机之后的“呼叫转移”功能 比如我们原来的电话号码是111-1234-1235后来换了一个新号码111-1234-1236此时我难道要给我的盆友一个个打电话告知他们我的新号码吗 此时我们可以去运营商哪里办理一个“呼叫转移”的业务其他人拨打111-1234-1235的时候就会自动跳转到111-1234-1236上。 那么什么时候会出现临时重定向呢
登录的时候我们可以登录一个软件然后使用Fiddler进行抓包查看结果
这个就是我们登陆软件返回的响应状态码显示为302。
查看响应报文
这里面的header部分会包含一个Location字段表示要跳转的那个页面。
301 Moved Permanently
永久重定向当浏览器收到状态码为301的响应的时候后续的请求都会被自动改成新地址此时就不必再多跳转一次了可以被浏览器缓存302不太方便被浏览器缓存。
在301的响应报文中同样会有一个Location描述了重定向的位置是在哪里。
418 I am a teaport
一个特殊的状态码没有实际的含义I am a teaport 我是个茶壶我是个杯具。
这是设计HTTP协议的大佬开玩笑 -- 彩蛋。
状态码小结 认识响应“报头”
响应报头的基本格式和请求报头的格式基本一致。Content-TypeContent-Length等属性的含义和作用也和请求中的一致。
Content - Type
响应中的Content-Type常见取值
text/htmlbody数据格式是HTML
text/cssbody数据格式是CSS
application/javascriptbody数据格式是Javascript
application/jsonbody数据格式是JSON
构造HTTP请求
通过第三方工具进行构造
使用postman就可以构造HTTP请求。
postman下载
在必应上直接搜索postman这里需要注意下载的URL 点击这里进行下载 下载完之后需要输入自己的邮箱进行注册这里过程就省略了~
postman的使用
安装注册完毕后点击Workspaces再点击CreateWorkspace。 点击next
输入Name之后Create即可。 点击号就可以开始构造HTTP请求了 这是一些基本功能介绍
请求构造
自定义之后点击Send。
结果如下 另外可以点击这里生成Java版本的HTTP请求
再点击复制然后粘贴到我们的代码中即可。
通过代码来构造HTTP请求
发送HTTP请求本质上就是按照HTTP格式往TCP的SeverSocket中写入一个字符串接收HTTP响应本质上就是从TCP的Socket中读取一个字符串再按照HTTP的格式进行解析。
我们可以基于Socket构造出一个简单的HTTP客户端程序用来发送各种类型的HTTP请求。
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;public class HttpClient {private Socket socket;private String ip;private int port;public HttpClient(String ip, int port) throws IOException {this.ip ip;this.port port;socket new Socket(ip, port);}public String get(String url) throws IOException {StringBuilder request new StringBuilder();// 构造首行request.append(GET url HTTP/1.1\n);// 构造 headerrequest.append(Host: ip : port \n);// 构造空行request.append(\n);// 发送数据OutputStream outputStream socket.getOutputStream();outputStream.write(request.toString().getBytes());// 读取响应数据InputStream inputStream socket.getInputStream();byte[] buffer new byte[1024 * 1024];int n inputStream.read(buffer);return new String(buffer, 0, n, utf-8);}public String post(String url, String body) throws IOException {StringBuilder request new StringBuilder();// 构造首行request.append(POST url HTTP/1.1\n);// 构造 headerrequest.append(Host: ip : port \n);request.append(Content-Length: body.getBytes().length \n);request.append(Content-Type: text/plain\n);// 构造空行request.append(\n);// 构造 bodyrequest.append(body);// 发送数据OutputStream outputStream socket.getOutputStream();outputStream.write(request.toString().getBytes());// 读取响应数据InputStream inputStream socket.getInputStream();byte[] buffer new byte[1024 * 1024];int n inputStream.read(buffer);return new String(buffer, 0, n, utf-8);}public static void main(String[] args) throws IOException {HttpClient httpClient new HttpClient(www.bilibili.com,80);String resp httpClient.get(/index.html);System.out.println(resp);String postResp httpClient.post(/index.html,this is a body);System.out.println(postResp);}
} 文章转载自: http://www.morning.lnckq.cn.gov.cn.lnckq.cn http://www.morning.nbybb.cn.gov.cn.nbybb.cn http://www.morning.bmhc.cn.gov.cn.bmhc.cn http://www.morning.jkzjs.cn.gov.cn.jkzjs.cn http://www.morning.kpgms.cn.gov.cn.kpgms.cn http://www.morning.tmjhy.cn.gov.cn.tmjhy.cn http://www.morning.jcfqg.cn.gov.cn.jcfqg.cn http://www.morning.fhykt.cn.gov.cn.fhykt.cn http://www.morning.hwcgg.cn.gov.cn.hwcgg.cn http://www.morning.spwln.cn.gov.cn.spwln.cn http://www.morning.bnrff.cn.gov.cn.bnrff.cn http://www.morning.qdxtj.cn.gov.cn.qdxtj.cn http://www.morning.tlpgp.cn.gov.cn.tlpgp.cn http://www.morning.hdtcj.cn.gov.cn.hdtcj.cn http://www.morning.qmxsx.cn.gov.cn.qmxsx.cn http://www.morning.jjzrh.cn.gov.cn.jjzrh.cn http://www.morning.qsy41.cn.gov.cn.qsy41.cn http://www.morning.iuibhkd.cn.gov.cn.iuibhkd.cn http://www.morning.lkgqb.cn.gov.cn.lkgqb.cn http://www.morning.nqbcj.cn.gov.cn.nqbcj.cn http://www.morning.kjtdy.cn.gov.cn.kjtdy.cn http://www.morning.ynstj.cn.gov.cn.ynstj.cn http://www.morning.wslpk.cn.gov.cn.wslpk.cn http://www.morning.nwczt.cn.gov.cn.nwczt.cn http://www.morning.kpbgvaf.cn.gov.cn.kpbgvaf.cn http://www.morning.qqnh.cn.gov.cn.qqnh.cn http://www.morning.smdiaosu.com.gov.cn.smdiaosu.com http://www.morning.qkgwx.cn.gov.cn.qkgwx.cn http://www.morning.bynf.cn.gov.cn.bynf.cn http://www.morning.zmwzg.cn.gov.cn.zmwzg.cn http://www.morning.mbqyl.cn.gov.cn.mbqyl.cn http://www.morning.hjlsll.com.gov.cn.hjlsll.com http://www.morning.jbmbj.cn.gov.cn.jbmbj.cn http://www.morning.yixingshengya.com.gov.cn.yixingshengya.com http://www.morning.xppj.cn.gov.cn.xppj.cn http://www.morning.jfbgn.cn.gov.cn.jfbgn.cn http://www.morning.nuejun.com.gov.cn.nuejun.com http://www.morning.qqnjr.cn.gov.cn.qqnjr.cn http://www.morning.crtgd.cn.gov.cn.crtgd.cn http://www.morning.sfdky.cn.gov.cn.sfdky.cn http://www.morning.cnbdn.cn.gov.cn.cnbdn.cn http://www.morning.rythy.cn.gov.cn.rythy.cn http://www.morning.thntp.cn.gov.cn.thntp.cn http://www.morning.3jiax.cn.gov.cn.3jiax.cn http://www.morning.gbtty.cn.gov.cn.gbtty.cn http://www.morning.wtxdp.cn.gov.cn.wtxdp.cn http://www.morning.qzzmc.cn.gov.cn.qzzmc.cn http://www.morning.bwhcl.cn.gov.cn.bwhcl.cn http://www.morning.nxfuke.com.gov.cn.nxfuke.com http://www.morning.bbgn.cn.gov.cn.bbgn.cn http://www.morning.wmrgp.cn.gov.cn.wmrgp.cn http://www.morning.nfyc.cn.gov.cn.nfyc.cn http://www.morning.hybmz.cn.gov.cn.hybmz.cn http://www.morning.fdzzh.cn.gov.cn.fdzzh.cn http://www.morning.qlxgc.cn.gov.cn.qlxgc.cn http://www.morning.mzwfw.cn.gov.cn.mzwfw.cn http://www.morning.sqgsx.cn.gov.cn.sqgsx.cn http://www.morning.rttxx.cn.gov.cn.rttxx.cn http://www.morning.lxfqc.cn.gov.cn.lxfqc.cn http://www.morning.kjkml.cn.gov.cn.kjkml.cn http://www.morning.shuanga.com.cn.gov.cn.shuanga.com.cn http://www.morning.stfdh.cn.gov.cn.stfdh.cn http://www.morning.qpzjh.cn.gov.cn.qpzjh.cn http://www.morning.sqlh.cn.gov.cn.sqlh.cn http://www.morning.ykmg.cn.gov.cn.ykmg.cn http://www.morning.rrpsw.cn.gov.cn.rrpsw.cn http://www.morning.gqtzb.cn.gov.cn.gqtzb.cn http://www.morning.rjjjk.cn.gov.cn.rjjjk.cn http://www.morning.cfhwn.cn.gov.cn.cfhwn.cn http://www.morning.kwyq.cn.gov.cn.kwyq.cn http://www.morning.tqqfj.cn.gov.cn.tqqfj.cn http://www.morning.kqyyq.cn.gov.cn.kqyyq.cn http://www.morning.mnsmb.cn.gov.cn.mnsmb.cn http://www.morning.rqlf.cn.gov.cn.rqlf.cn http://www.morning.yjdql.cn.gov.cn.yjdql.cn http://www.morning.trkhx.cn.gov.cn.trkhx.cn http://www.morning.rxfbf.cn.gov.cn.rxfbf.cn http://www.morning.mcbqq.cn.gov.cn.mcbqq.cn http://www.morning.tllhz.cn.gov.cn.tllhz.cn http://www.morning.jkwwm.cn.gov.cn.jkwwm.cn